系统性能监控(2)

系统性能监控(2)

内存

看内存的使用

[root@xiaoyang ~] free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        240M        2.8G         11M        705M        3.2G
Swap:          2.0G          0B        2.0G
[root@xiaoyang ~]# 

Mem 物理内存的

Swap 交换分区

total = used+free+shared+buff/cache

buffer :在内存里是零时存放数据的地方 data 从内存到磁盘 —>写操作

cache: 在内存里是零时存放数据的地方 data 从磁盘到内存 —>读操作

available: 能够给下一个进程提供的可用空间 free + buff/cache 里的可用空间


Swap 当物理内存不足的话,会从磁盘调过来

这是交换分区,从磁盘里拿出一块空间充当内存使用 以前有个潜规则:swap分区建议设置为物理内存的两倍

[root@xiaoyang ~] cat /proc/sys/vm/swappiness
30
[root@xiaoyang ~]# 

virtual memory 虚拟内存=物理内存+swap分区

swappiness 当物理内存只剩下百分之30的时候就使用交换分区

扫描二维码关注公众号,回复: 15623781 查看本文章

swappiness

零时修改

[root@xiaoyang ~] cat  /proc/sys/vm/swappiness
30
[root@xiaoyang ~] echo 0 >/proc/sys/vm/swappiness  当物理内存只剩下0的时候就使用交换分区
[root@xiaoyang ~] cat  /proc/sys/vm/swappiness
0
[root@xiaoyang ~]# 

永久修改

[root@xiaoyang ~] vim /etc/sysctl.conf 
[root@xiaoyang ~] cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
vm.swappiness=0
[root@xiaoyang ~] sysctl -p
vm.swappiness = 0
[root@xiaoyang ~]#

看内存信息

cat /proc/meminfo

清空一下,buffer /cache 缓存

在这里插入图片描述
3的效果好

清空缓存:

[root@xiaoyang ~] sync ; echo 3 >/proc/sys/vm/drop_caches
[root@xiaoyang ~] free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        231M        3.4G         11M         52M        3.3G
Swap:          2.0G          0B        2.0G
[root@xiaoyang ~]# 

以上行为清除缓存里的数据,有风险,会导致数据丢失

dstat,可以看page in/out

[root@xiaoyang ~] dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0   0|  13k 1497B|   0     0 |   0     0 |  59   104 
  0   0 100   0   0   0|   0     0 |  60B  818B|   0     0 |  60    97 
  0   1 100   0   0   0|   0     0 |  60B  338B|   0     0 |  53    83 
  0   0 100   0   0   0|   0     0 | 120B  398B|   0     0 |  54    87 

system 中的int是被打断的次数

csw 是上下文切换

dstat -ma 可以看到很多信息

看到磁盘,cpu等

[root@xiaoyang ~] dstat -ma
------memory-usage----- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
 used  buff  cach  free|usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
 252M    0  45.9M 3473M|  0   0 100   0   0   0|  13k 1481B|   0     0 |   0     0 |  59   103 
 252M    0  45.9M 3473M|  0   0 100   0   0   0|   0     0 |  60B 1034B|   0     0 |  59    96 
 252M    0  45.9M 3473M|  0   0 100   0   0   0|   0     0 |  60B  418B|   0     0 |  55    91 
 252M    0  45.9M 3473M|  0   0 100   0   0   0|   0     0 |  60B  418B|   0     0 |  72   105 
 252M    0  45.9M 3473M|  0   0 100   0   0   0|   0     0 |  60B  418B|   0     0 |  68    97 

找出消耗CPU最多的十个进程,还有内存

两种方法 一种是 top —-》P(cpu)

M—->(内存)

第二种:

ps aux|more

[root@xiaoyang ~]# ps aux|more
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 125384  3896 ?        Ss   16:44   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize
 22
root          2  0.0  0.0      0     0 ?        S    16:44   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   16:44   0:00 [kworker/0:0H]
root          5  0.0  0.0      0     0 ?        S    16:44   0:00 [kworker/u256:0]
root          6  0.0  0.0      0     0 ?        S    16:44   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    16:44   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    16:44   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    16:44   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   16:44   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    16:44   0:00 [watchdog/0]
root         12  0.0  0.0      0     0 ?        S    16:44   0:00 [watchdog/1]
root         13  0.0  0.0      0     0 ?        S    16:44   0:00 [migration/1]
root         14  0.0  0.0      0     0 ?        S    16:44   0:00 [ksoftirqd/1]
root         16  0.0  0.0      0     0 ?        S<   16:44   0:00 [kworker/1:0H]
root         18  0.0  0.0      0     0 ?        S    16:44   0:00 [kdevtmpfs]
root         19  0.0  0.0      0     0 ?        S<   16:44   0:00 [netns]
root         20  0.0  0.0      0     0 ?        S    16:44   0:00 [khungtaskd]
root         21  0.0  0.0      0     0 ?        S<   16:44   0:00 [writeback]
root         22  0.0  0.0      0     0 ?        S<   16:44   0:00 [kintegrityd]
root         23  0.0  0.0      0     0 ?        S<   16:44   0:00 [bioset]
root         24  0.0  0.0      0     0 ?        S<   16:44   0:00 [bioset]
root         25  0.0  0.0      0     0 ?        S<   16:44   0:00 [bioset]
root         26  0.0  0.0      0     0 ?        S<   16:44   0:00 [kblockd]
root         27  0.0  0.0      0     0 ?        S<   16:44   0:00 [md]
root         28  0.0  0.0      0     0 ?        S<   16:44   0:00 [edac-poller]
[root@xiaoyang ~]# 
[root@xiaoyang ~] ps aux|tail -n +2|sort -k3 -rn|head
root        675  0.1  0.1 273192  4884 ?        Ssl  16:44   0:16 /usr/bin/vmtoolsd
root        980  0.0  0.1 222740  4644 ?        Ssl  16:44   0:01 /usr/sbin/rsyslogd -n
root        977  0.0  0.5 574284 19468 ?        Ssl  16:44   0:02 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root        976  0.0  0.1 112900  4344 ?        Ss   16:44   0:00 /usr/sbin/sshd -D
root          9  0.0  0.0      0     0 ?        S    16:44   0:00 [rcu_sched]
root          8  0.0  0.0      0     0 ?        S    16:44   0:00 [rcu_bh]
root        783  0.0  0.1 102904  5540 ?        S    16:44   0:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf /var/lib/NetworkManager/dhclient-9cabfa34-d47b-4024-85ee-2ed52a00621c-ens33.lease -cf /var/lib/NetworkManager/dhclient-ens33.conf ens33
root        704  0.0  0.0  99208  2708 ?        Ss   16:44   0:00 login -- root
root        701  0.0  0.0 126388  1628 ?        Ss   16:44   0:00 /usr/sbin/crond -n
root          7  0.0  0.0      0     0 ?        S    16:44   0:00 [migration/0]
[root@xiaoyang ~]# ps aux|tail -n +2|sort -k3 -rn|head |awk '{print $11,$3}'
/usr/bin/vmtoolsd 0.1
/usr/sbin/rsyslogd 0.0
/usr/bin/python2 0.0
/usr/sbin/sshd 0.0
[rcu_sched] 0.0
[rcu_bh] 0.0
/sbin/dhclient 0.0
login 0.0
/usr/sbin/crond 0.0
[migration/0] 0.0


在这里插入图片描述

在这里插入图片描述

cpu 使用率100% 内存使用率100% 有什么后果?

卡顿

业务程序异常: 老用户卡顿,新用户连接不进来

网络

端口扫描工具

[root@xiaoyang ~]# yum install nc nmap fping telnet -y

先一件安装

nc

[root@xiaoyang ~]# nc -z 8.219.110.232 22 不传输数据给对方

-z Zero-I/O mode, report connection status only 报告一下能不能连上

然后看 echo $? 看返回值

-w, --wait

[root@xiaoyang ~] nc -z -w 1  8.219.110.232 2233
[root@xiaoyang ~] echo $?
1
[root@xiaoyang ~]# 

也可以测百度

nc -z -w 1 www.baidu.com 80

echo $?

nmap

[root@xiaoyang lianxi] nmap 192.168.209.143

Starting Nmap 6.40 ( http://nmap.org ) at 2023-05-08 22:41 CST
Nmap scan report for 192.168.209.143
Host is up (0.0000030s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 2.03 seconds
[root@xiaoyang lianxi]#

fping

可以探测,一个网段里哪些ip在使用,哪些没有使用

[root@xiaoyang lianxi] fping -g 192.168.209.0/24

curl

[root@xiaoyang lianxi] curl www.baidu.com

telnet

[root@xiaoyang lianxi] telnet www.baidu.com 80
Trying 14.119.104.254...
Connected to www.baidu.com.
Escape character is '^]'.
^Cq^C^C
Connection closed by foreign host.
[root@xiaoyang lianxi]#

看别人端口

nc
nmap
telent

看自己端口

netstat
lsof
ss

网络流量

ethtool 查看本机网卡和其他设备匹配的速度

ethtool ens33

dstat—》显示 CPU 使用率、内存使用率、磁盘 I/O、网络流量

dstat 是一个命令行工具,用于监测系统性能和资源使用情况。它可以显示 CPU 使用率、内存使用率、磁盘 I/O、网络流量等信息。dstat 可以帮助系统管理员快速定位系统性能瓶颈和资源瓶颈,从而优化系统性能。

dstat -ma

-N 可以指定看哪个端口

dstat -N ens33 22

iftop—》用于监控网络流量和带宽使用情况

iftop是一种网络监控工具,可用于监控网络流量和带宽使用情况。它以实时方式显示网络接口的传输情况,可以帮助用户快速识别网络瓶颈和异常流量。iftop可以在Linux、Unix和macOS等操作系统上运行。

yum install iftop -y
[root@xiaoyang lianxi] iftop
interface: ens33
IP address is: 192.168.209.143
MAC address is: 00:0c:29:9f:59:8a
[root@xiaoyang lianxi]#

glances—》监控CPU、内存、磁盘、网络、进程

glances是一种跨平台的实时系统和资源监控工具,它可以用于监控CPU、内存、磁盘、网络、进程等系统资源的使用情况。glances可以在终端中使用,也可以通过web界面进行监控。它支持多种操作系统,包括Linux、Windows、macOS等。

yum install glances -y

[root@xiaoyang lianxi]# glances

nethogs—>监控网络流量

nethogs 是一款 Linux 上的命令行工具,用于监控网络流量,可以实时显示每个进程的网络带宽使用情况。它可以按照进程、用户、协议等进行过滤和排序,帮助用户了解系统中哪些进程在占用网络带宽,以及它们占用的带宽情况。
yum install nethogs -y

sz,rz—》发送和传输文件

sz是发送文件到windows

rz是接收文件

[root@xiaoyang lianxi] rz

[root@xiaoyang lianxi] ls
1.txt           hehaotian.txt         lu           monitor.sh   taohuadao
2.txt           hehaotian.txt,bak     lu2          name.txt     test_big_file2.txt
3-7             hehaotian.txt.bakkup  lu3          nginx.log    test_big_file.txt
big_file.sh     hehaotian.txt=SUFFIX  lu4          nohup.out    user_pwd.txt
bill.txt        hengshan              lu8          passwd       web.txt
create_user.sh  honghuamiji           lu.c         sc.txt       wulin
gaohui.sh       ifcfg-ens33           mail.txt     sshd_config  啦啦啦(1).txt
gaohui.txt      ip.txt                monitor.log  state.txt
[root@xiaoyang lianxi] sz monitor.sh
[root@xiaoyang lianxi]# 

一些问题

网络的速度由哪些地方可以决定

每条链路上最大的带宽

交换机和路由器可以限速的

防火墙都可以限速

1.硬件本身的速度

2,是否限制

如果知道本机开放了哪些端口

直接输入ss

​ ss -anplut

​ ss -an


netstat -anplut

[root@xiaoyang ~] netstat -anplut
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      976/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1212/master         
tcp        0     36 192.168.209.143:22      192.168.209.1:53099     ESTABLISHED 2004/sshd: root@pts 
tcp        0      0 192.168.209.143:22      192.168.209.1:53097     ESTABLISHED 1985/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      976/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1212/master         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           783/dhclient        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           686/chronyd         
udp6       0      0 ::1:323                 :::*                                686/chronyd         
[root@xiaoyang ~]# 

没有的话就安装一下 net-tools

lsof命令

[root@xiaoyang ~] lsof -i:22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd     976 root    3u  IPv4  20857      0t0  TCP *:ssh (LISTEN)
sshd     976 root    4u  IPv6  20859      0t0  TCP *:ssh (LISTEN)
sshd    1985 root    3u  IPv4  33978      0t0  TCP xiaoyang:ssh->192.168.209.1:53097 (ESTABLISHED)
sshd    2004 root    3u  IPv4  34028      0t0  TCP xiaoyang:ssh->192.168.209.1:53099 (ESTABLISHED)
[root@xiaoyang ~]# lsof -p 884

看哪些进程访问这个文件

[root@xiaoyang ~] lsof /root
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
bash    1443 root  cwd    DIR  253,0     4096 33574977 /root
bash    1987 root  cwd    DIR  253,0     4096 33574977 /root
bash    2006 root  cwd    DIR  253,0     4096 33574977 /root
lsof    2387 root  cwd    DIR  253,0     4096 33574977 /root
lsof    2388 root  cwd    DIR  253,0     4096 33574977 /root
[root@xiaoyang ~]# 

通过端口看某个服务是否运行

查看监听状态:

[root@xiaoyang ~] netstat -anplut|grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      976/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1212/master         
tcp6       0      0 :::22                   :::*                    LISTEN      976/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1212/master         
[root@xiaoyang ~]#

怎么看交换机的每个口的网络流量,路由器

使用监控软件

zabbix

Prometheus

需要在路由器和交换机开启 snmp协议 简单网络管理协议

ethtool ens33

怎么知道自己的网卡是百兆还是千兆

Speed: 1000Mb/s

ethtool ens33

[root@xiaoyang ~] ethtool ens33
Settings for ens33:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: d
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

磁盘

读写速度 IO速度 input 和 output

​ tps

​ iops

sar

sar命令是系统性能分析工具,用于收集系统的各种性能数据,如CPU使用率、内存使用情况、磁盘I/O、网络流量等,并将这些数据以指定的时间间隔进行记录和统计,以便用户能够更好地了解系统的性能状况,从而进行系统性能优化。

[root@xiaoyang lianxi] sar -d 1 3
Linux 3.10.0-1160.el7.x86_64 (xiaoyang) 	2023年05月08日 	_x86_64_	(2 CPU)

23时05分59秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
23时06分00秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23时06分00秒    dev8-0    179.00      0.00 171960.00    960.67      0.08      0.46      0.44      7.90
23时06分00秒  dev253-0    179.00      0.00 171960.00    960.67      0.08      0.46      0.44      7.90
23时06分00秒  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

23时06分00秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
23时06分01秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23时06分01秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23时06分01秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23时06分01秒  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

23时06分01秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
23时06分02秒   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23时06分02秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23时06分02秒  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
23时06分02秒  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
平均时间:   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:    dev8-0     59.67      0.00  57320.00    960.67      0.03      0.46      0.44      2.63
平均时间:  dev253-0     59.67      0.00  57320.00    960.67      0.03      0.46      0.44      2.63
平均时间:  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
[root@xiaoyang lianxi]# 

tps是 每秒钟传输的次数

%util 繁忙度 越高,表示这块磁盘越忙

tps 每秒钟读写的速度

100%的时候,机器卡顿

iostat—》查看磁盘io的读写速度和繁忙度

iostat -x 查看磁盘io的读写速度和繁忙度

[root@xiaoyang lianxi] iostat -x
Linux 3.10.0-1160.el7.x86_64 (xiaoyang) 	2023年05月08日 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.07    0.00    0.00   99.92

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
scd0              0.00     0.00    0.00    0.00     0.04     0.00   114.22     0.00    1.39    1.39    0.00   0.94   0.00
sda               0.00     0.02    0.40    0.23    14.80     8.29    72.66     0.00    0.47    0.48    0.46   0.27   0.02
dm-0              0.00     0.00    0.31    0.25    13.41     8.20    77.18     0.00    0.54    0.60    0.48   0.29   0.02
dm-1              0.00     0.00    0.00    0.00     0.09     0.00    50.09     0.00    0.14    0.14    0.00   0.09   0.00

[root@xiaoyang lianxi]# 

看磁盘空间的使用情况,df -Th

[root@xiaoyang ~] dd if=/dev/zero of=/test.dd bs=1M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000字节(1.0 GB)已复制,0.44042 秒,2.4 GB/秒
[root@xiaoyang ~] df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  4.8G   13G   28% /
/dev/sda1               xfs      1014M  151M  864M   15% /boot
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
[root@xiaoyang ~]# ^C

[root@xiaoyang ~] rm -rf test.dd   删除产生的零时大文件
[root@xiaoyang ~] df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   12M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  4.8G   13G   28% /
/dev/sda1               xfs      1014M  151M  864M   15% /boot
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
[root@xiaoyang ~]# 

lsblk —>能看到磁盘多大

只能看到磁盘多大

df -Th -->查看磁盘容量

查看磁盘容量

iotop ---->看到哪个进程在大量的对磁盘进程读写

可以看到哪个进程在大量的对磁盘进程读写

总结一下

cpu

内存

网络带宽

磁盘容量和IO(tps/iops)

tps是什么?

每秒钟访问的速度(读,写)

%util 是什么?

繁忙度

用户访问我们的服务器特别慢,请你分析一下原因,如何去排查?

如果他访问第三方,快的话,那就是我们的问题

看cpu

看内存

看带宽

看IO读写空间和容量

用哪个命令一次性看到 —>glances

如果都正常,那就是负载均衡器或者运营商的问题

查看端口号

使用命令" netstat -tunlp " 可以查看当前所有端口的使用情况及对应的进程。其中,“-t” 表示TCP协议,“-u” 表示UDP协议,“-n” 表示不使用域名解析,“-l” 表示只列出监听的端口,“-p” 表示显示进程名和进程ID。

猜你喜欢

转载自blog.csdn.net/investor_/article/details/130786191