软件测试 / 测试开发丨 Linux 常用命令之性能统计
作者:测试人
- 2023-07-18 北京
本文字数:3015 字
阅读完需:约 10 分钟
免费领取:测试资料+性能测试+接口测试+自动化测试+测试开发+测试用例+简历模板+测试文档
1、常用性能指标
cpu 代表算法的高效性
mem 代表数据结构的使用合理性
net io 等更多指标
2、 统计方法
临时性分析 命令交互
系统性分析 prometheus grafana
3、CPU 使用统计
(1) cpu 的关键指标
cpu 利用率 进程的 cpu 利用情况
load average 系统负载情况
ps 命令的 cpu 是平均 cpu 利用率,不适合做性能分析
(2)cpu 信息
命令:cat /proc/cpuinfo
cat /proc/cpuinfoprocessor : 0vendor_id : GenuineIntelcpu family : 6model : 79model name : Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHzmicrocode : 0x1cpu MHz : 2499.994cache size : 40960 KBphysical id : 0siblings : 2core id : 0cpu cores : 1clflush size : 64cache_alignment : 64address sizes : 46 bits physical, 48 bits virtualpower management:processor : 1vendor_id : GenuineIntel复制代码
(3) 系统负载与进程 cpu 占用 top
命令:top
top - 17:27:57 up 76 days, 18:17, 1 user, load average: 1.03, 1.11, 1.15Tasks: 215 total, 2 running, 131 sleeping, 0 stopped, 0 zombie%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 stKiB Mem : 16122020 total, 1343832 free, 4715324 used, 10062864 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 11060040 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND23508 yangche+ 20 0 668504 114388 30628 R 100.0 0.7 2872:02 /usr/local+11120 root 10 -10 152468 34444 9120 S 10.0 0.2 2648:51 /usr/local+11634 yangtie+ 20 0 1101696 123748 12648 S 2.0 0.8 53:58.88 /home/yang+30939 yangtie+ 20 0 1525284 95928 17472 S 1.3 0.6 27:44.85 /home/yang+ 658 root 20 0 306560 170916 170332 S 0.7 1.1 116:29.63 /usr/lib/s+ 5541 yangtie+ 20 0 447548 42472 12632 S 0.7 0.3 8:15.91 /home/yang+ 5713 quanjin+ 20 0 7850436 2.2g 8648 S 0.7 14.0 583:19.28 java -Duse+ 7427 yangche+ 20 0 7796228 225700 9420 S 0.7 1.4 537:38.47 java -jar +复制代码
4、内存(MEM)占用统计
(1) 常用命令
命令:free
free -m total used free shared buff/cache availableMem: 3790 367 136 2077 3287 1042Swap: 0 0 0复制代码
命令:man free
1、 total:机器上的内存总量(/proc/meminfo中的MemTotal和SwapTotal)
2、 used:已用内存(以总可用缓冲区缓存计算)
3、 free:未使用的内存(/proc/meminfo中的MemFree和SwapFree)
4、 shared:共享内存,tmpfs(主要)使用的内存(/proc/meminfo中的Shmem,可用,在内核2.6.32上,如果不可用,则显示为零)
5、 buffers:内核缓冲区使用的内存(/proc/meminfo中的缓冲区)
6、 cache:页面缓存和Slab使用的内存(/proc/meminfo中的Cached和Slab)
7、 buff/cache:缓冲区和缓存的总和
8、 available:估计有多少内存可用于启动新应用程序,而无需交换。由于项目正在使用,并非所有可回收的内存板都将被回收复制代码
命令:cat /proc/meminfo:/proc/meminfo 保存了更多的内存使用数据
cat /proc/meminfoMemTotal: 3881920 kBMemFree: 132204 kBMemAvailable: 1073044 kBBuffers: 561564 kBCached: 2307572 kBSwapCached: 0 kBActive: 795200 kBInactive: 2358704 kBActive(anon): 376576 kBInactive(anon): 2035324 kBActive(file): 418624 kBInactive(file): 323380 kBUnevictable: 0 kBMlocked: 0 kBSwapTotal: 0 kBSwapFree: 0 kB...复制代码
命令:ps
进程级别的内存分析,可以筛选想要了解的字段信息
ps -e -o uid,pid,ppid,pcpu,pmem,rss,vsz,comm --sort -%mem | head -10
UID PID PPID %CPU %MEM RSS VSZ COMMAND 6597 12059 1 0.0 1.9 77036 3584588 java 5729 32380 1 0.0 1.9 74608 3518808 java 0 29821 1 1.5 0.9 38768 161384 AliYunDun 0 457 1 0.2 0.9 37816 1053844 CmsGoAgent.linu 0 340 1 0.0 0.7 27628 62708 systemd-journal 0 12047 1 0.0 0.4 19264 396524 rsyslogd 0 28845 1 0.5 0.4 16092 719100 node_exporter 0 10454 1 0.0 0.2 11408 564716 tuned 998 10439 1 0.0 0.2 8788 710032 polkitd复制代码
命令:top
top - 17:17:49 up 325 days, 5:59, 5 users, load average: 0.00, 0.01, 0.05Tasks: 92 total, 1 running, 91 sleeping, 0 stopped, 0 zombie%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 stKiB Mem : 3881920 total, 134192 free, 372640 used, 3375088 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 1071332 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND12059 dx42310+ 20 0 3584588 77036 0 S 0.3 2.0 35:01.64 java32380 dx53889 20 0 3518808 74608 1056 S 0.0 1.9 19:20.34 java29821 root 10 -10 161384 38768 5788 S 0.3 1.0 758:25.24 AliYunDun 457 root 20 0 1053844 37680 5208 S 0.0 1.0 993:28.66 CmsGoAgent+ 340 root 20 0 62708 27876 27244 S 0.0 0.7 193:01.35 systemd-jo+12047 root 20 0 396524 19408 15780 S 0.0 0.5 54:24.50 rsyslogd28845 root 20 0 719100 16160 4376 S 0.0 0.4 1263:32 node_expor+10454 root 20 0 564716 11408 712 S 0.0 0.3 18:45.31 tuned10439 polkitd 20 0 710032 8788 1172 S 0.0 0.2 8:42.55 polkitd17217 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 打印出来进程
网络状态
ESTABLISHED:成功连接 The socket has an established connection,已经被建立链接了SYN_SENT:The socket is actively attempting to establish a connectionSYN_RECV:A connection request has been received from the network.FIN_WAIT1:The socket is closed, and the connection is shutting down.FIN_WAIT2:Connection is closed, and the socket is waiting for a shutdown from the remote endTIME_WAIT:主动关闭 The socket is waiting after close to handle packets still in the networkCLOSE:The socket is not being usedCLOSE_WAIT:被动关闭 The remote end has shut down, waiting for the socket to close.LISTEN:The socket is listening for incoming connections复制代码
划线
评论
复制
发布于: 刚刚阅读数: 3
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/e816e081e0ae376e4c2e3b4a5】。文章转载请联系作者。
测试人
关注
专注于软件测试开发 2022-08-29 加入
霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284










评论