Linux常用命令之性能统计

1、常用性能指标

  • cpu 代表算法的高效性
  • mem 代表数据结构的使用合理性
  • net io 等更多指标

2、 统计方法

  • 临时性分析 命令交互
  • 系统性分析 prometheus grafana

image

3、CPU使用统计

(1) cpu 的关键指标
  • cpu 利用率 进程的 cpu 利用情况
  • load average 系统负载情况
  • ps 命令的 cpu 是平均 cpu 利用率,不适合做性能分析
(2)cpu 信息
  • 命令:cat /proc/cpuinfo
 
  1. cat /proc/cpuinfo

  2. processor : 0

  3. vendor_id : GenuineIntel

  4. cpu family : 6

  5. model : 79

  6. model name : Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz

  7. microcode : 0x1

  8. cpu MHz : 2499.994

  9. cache size : 40960 KB

  10. physical id : 0

  11. siblings : 2

  12. core id : 0

  13. cpu cores : 1

  14. clflush size : 64

  15. cache_alignment : 64

  16. address sizes : 46 bits physical, 48 bits virtual

  17. power management:

  18. processor : 1

  19. vendor_id : GenuineIntel

(3) 系统负载与进程 cpu 占用 top
  • 命令:top
 
  1. top - 17:27:57 up 76 days, 18:17, 1 user, load average: 1.03, 1.11, 1.15

  2. Tasks: 215 total, 2 running, 131 sleeping, 0 stopped, 0 zombie

  3. %Cpu(s): 28.7 us, 0.4 sy, 0.0 ni, 70.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

  4. KiB Mem : 16122020 total, 1343832 free, 4715324 used, 10062864 buff/cache

  5. KiB Swap: 0 total, 0 free, 0 used. 11060040 avail Mem

  6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

  7. 23508 yangche+ 20 0 668504 114388 30628 R 100.0 0.7 2872:02 /usr/local+

  8. 11120 root 10 -10 152468 34444 9120 S 10.0 0.2 2648:51 /usr/local+

  9. 11634 yangtie+ 20 0 1101696 123748 12648 S 2.0 0.8 53:58.88 /home/yang+

  10. 30939 yangtie+ 20 0 1525284 95928 17472 S 1.3 0.6 27:44.85 /home/yang+

  11. 658 root 20 0 306560 170916 170332 S 0.7 1.1 116:29.63 /usr/lib/s+

  12. 5541 yangtie+ 20 0 447548 42472 12632 S 0.7 0.3 8:15.91 /home/yang+

  13. 5713 quanjin+ 20 0 7850436 2.2g 8648 S 0.7 14.0 583:19.28 java -Duse+

  14. 7427 yangche+ 20 0 7796228 225700 9420 S 0.7 1.4 537:38.47 java -jar +

4、内存(MEM)占用统计

(1) 常用命令
  • 命令:free
 
  1. free -m

  2. total used free shared buff/cache available

  3. Mem: 3790 367 136 2077 3287 1042

  4. Swap: 0 0 0

  • 命令:man free
 
  1. 1、 total:机器上的内存总量(/proc/meminfo中的MemTotal和SwapTotal)

  2. 2、 used:已用内存(以总可用缓冲区缓存计算)

  3. 3、 free:未使用的内存(/proc/meminfo中的MemFree和SwapFree)

  4. 4、 shared:共享内存,tmpfs(主要)使用的内存(/proc/meminfo中的Shmem,可用,在内核2.6.32上,如果不可用,则显示为零)

  5. 5、 buffers:内核缓冲区使用的内存(/proc/meminfo中的缓冲区)

  6. 6、 cache:页面缓存和Slab使用的内存(/proc/meminfo中的Cached和Slab)

  7. 7、 buff/cache:缓冲区和缓存的总和

  8. 8、 available:估计有多少内存可用于启动新应用程序,而无需交换。由于项目正在使用,并非所有可回收的内存板都将被回收

  • 命令:cat /proc/meminfo:/proc/meminfo 保存了更多的内存使用数据
 
  1. cat /proc/meminfo

  2. MemTotal: 3881920 kB

  3. MemFree: 132204 kB

  4. MemAvailable: 1073044 kB

  5. Buffers: 561564 kB

  6. Cached: 2307572 kB

  7. SwapCached: 0 kB

  8. Active: 795200 kB

  9. Inactive: 2358704 kB

  10. Active(anon): 376576 kB

  11. Inactive(anon): 2035324 kB

  12. Active(file): 418624 kB

  13. Inactive(file): 323380 kB

  14. Unevictable: 0 kB

  15. Mlocked: 0 kB

  16. SwapTotal: 0 kB

  17. SwapFree: 0 kB

  18. ...

  • 命令:ps
  • 进程级别的内存分析,可以筛选想要了解的字段信息
    ps -e -o uid,pid,ppid,pcpu,pmem,rss,vsz,comm --sort -%mem | head -10
 
  1. UID PID PPID %CPU %MEM RSS VSZ COMMAND

  2. 6597 12059 1 0.0 1.9 77036 3584588 java

  3. 5729 32380 1 0.0 1.9 74608 3518808 java

  4. 0 29821 1 1.5 0.9 38768 161384 AliYunDun

  5. 0 457 1 0.2 0.9 37816 1053844 CmsGoAgent.linu

  6. 0 340 1 0.0 0.7 27628 62708 systemd-journal

  7. 0 12047 1 0.0 0.4 19264 396524 rsyslogd

  8. 0 28845 1 0.5 0.4 16092 719100 node_exporter

  9. 0 10454 1 0.0 0.2 11408 564716 tuned

  10. 998 10439 1 0.0 0.2 8788 710032 polkitd

  • 命令:top
 
  1. top - 17:17:49 up 325 days, 5:59, 5 users, load average: 0.00, 0.01, 0.05

  2. Tasks: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie

  3. %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

  4. KiB Mem : 3881920 total, 134192 free, 372640 used, 3375088 buff/cache

  5. KiB Swap: 0 total, 0 free, 0 used. 1071332 avail Mem

  6. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

  7. 12059 dx42310+ 20 0 3584588 77036 0 S 0.3 2.0 35:01.64 java

  8. 32380 dx53889 20 0 3518808 74608 1056 S 0.0 1.9 19:20.34 java

  9. 29821 root 10 -10 161384 38768 5788 S 0.3 1.0 758:25.24 AliYunDun

  10. 457 root 20 0 1053844 37680 5208 S 0.0 1.0 993:28.66 CmsGoAgent+

  11. 340 root 20 0 62708 27876 27244 S 0.0 0.7 193:01.35 systemd-jo+

  12. 12047 root 20 0 396524 19408 15780 S 0.0 0.5 54:24.50 rsyslogd

  13. 28845 root 20 0 719100 16160 4376 S 0.0 0.4 1263:32 node_expor+

  14. 10454 root 20 0 564716 11408 712 S 0.0 0.3 18:45.31 tuned

  15. 10439 polkitd 20 0 710032 8788 1172 S 0.0 0.2 8:42.55 polkitd

  16. 17217 root 20 0 155268 5924 4476 S 0.0 0.2 0:00.03 sshd

5、网络连接(Net)统计

  • 查看网络连接
  • 命令:netstat -tlnp:可以打印当前机器上正在被监听的进程信息等,t 参数关注TCP协议,l 参数代表listen状态的,表示监听,n 不解析域名,p 打印出来进程
  • 网络状态
 
  1. ESTABLISHED:成功连接 The socket has an established connection,已经被建立链接了

  2. SYN_SENT:The socket is actively attempting to establish a connection

  3. SYN_RECV:A connection request has been received from the network.

  4. FIN_WAIT1:The socket is closed, and the connection is shutting down.

  5. FIN_WAIT2:Connection is closed, and the socket is waiting for a shutdown from the remote end

  6. TIME_WAIT:主动关闭 The socket is waiting after close to handle packets still in the network

  7. CLOSE:The socket is not being used

  8. CLOSE_WAIT:被动关闭 The remote end has shut down, waiting for the socket to close.

  9. LISTEN:The socket is listening for incoming connections

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值