在上一篇文章,我们介绍了sysstat,以及它的安装。这一篇,将介绍sysstat的一些实用命令。安装完sysstat后会包含mpstat,iostat,pidstat,Tapestat等。
mpstat:监控cpu
如果我直接在屏幕上输出 mpstat
,显示所有处理器的平均统计信息,包括 CPU数量,cpu的 利用率、闲置率等。
Linux 3.10.0-1160.76.1.el7.x86_64 (instance-20221010-2157) 01/21/2024 _x86_64_ (2 CPU)
05:26:43 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:26:43 PM all 0.83 0.00 0.28 0.24 0.00 0.02 15.17 0.00 0.00 83.46
mpstat -P ALL
输出所有cpu的使用信息,我一共有2颗cpu,在linux里,0是第一颗,1是第二颗
Linux 3.10.0-1160.76.1.el7.x86_64 (instance-20221010-2157) 01/21/2024 _x86_64_ (2 CPU)
05:34:05 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:34:05 PM all 0.83 0.00 0.28 0.24 0.00 0.02 15.17 0.00 0.00 83.46
05:34:05 PM 0 0.82 0.00 0.28 0.02 0.00 0.01 15.78 0.00 0.00 83.10
05:34:05 PM 1 0.83 0.00 0.29 0.46 0.00 0.02 14.60 0.00 0.00 83.80
mpstat -P ALL 1 5
每秒输出一次所有处理器的统计信息,共输出 5 次。 这个命令要划重点,很实用,观察cpu的负载用这个会很有用。可以直观的看到每颗cpu的性能信息以及平均负载情况
Linux 3.10.0-1160.76.1.el7.x86_64 (instance-20221010-2157) 01/21/2024 _x86_64_ (2 CPU)
05:35:46 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:35:47 PM all 0.98 0.00 0.00 0.00 0.00 0.00 42.44 0.00 0.00 56.59
05:35:47 PM 0 1.49 0.00 0.00 0.00 0.00 0.00 71.64 0.00 0.00 26.87
05:35:47 PM 1 0.72 0.00 0.00 0.00 0.00 0.00 28.26 0.00 0.00 71.01
05:35:47 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:35:48 PM all 0.00 0.00 0.54 0.00 0.00 0.00 15.68 0.00 0.00 83.78
05:35:48 PM 0 0.00 0.00 1.27 0.00 0.00 0.00 26.58 0.00 0.00 72.15
05:35:48 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 8.33 0.00 0.00 91.67
05:35:48 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:35:49 PM all 0.00 0.00 0.00 0.00 0.00 0.00 30.26 0.00 0.00 69.74
05:35:49 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 14.17 0.00 0.00 85.83
05:35:49 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 60.61 0.00 0.00 39.39
05:35:49 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:35:50 PM all 0.52 0.00 0.00 0.00 0.00 0.00 49.74 0.00 0.00 49.74
05:35:50 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 30.94 0.00 0.00 69.06
05:35:50 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00 0.00 0.00
05:35:50 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:35:51 PM all 0.50 0.00 0.50 0.00 0.00 0.00 25.13 0.00 0.00 73.87
05:35:51 PM 0 0.85 0.00 0.00 0.00 0.00 0.00 19.66 0.00 0.00 79.49
05:35:51 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 32.50 0.00 0.00 67.50
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 0.41 0.00 0.21 0.00 0.00 0.00 32.82 0.00 0.00 66.56
Average: 0 0.38 0.00 0.19 0.00 0.00 0.00 28.92 0.00 0.00 70.51
Average: 1 0.22 0.00 0.00 0.00 0.00 0.00 37.53 0.00 0.00 62.25
mpstat -P 1
输出第二颗cpu的负载信息,若将1改成0 ,则输出第一颗的,依次类推
iostat:用于显示系统的 I/O 统计信息,包括磁盘和设备的使用情况。
iostat
直接输入iostat,会输出cpu的平均负载,以及cpu用于等待io请求完成的时间和 每秒读和写 扇区的数量。
avg-cpu: %user %nice %system %iowait %steal %idle
0.83 0.00 0.30 0.24 15.17 83.46
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 1.01 17.07 6.21 267116608 97161480
iostat -c 1 5
每秒输出一次统计信息,共输出 5 次。
Linux 3.10.0-1160.76.1.el7.x86_64 (instance-20221010-2157) 01/21/2024 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.83 0.00 0.30 0.24 15.17 83.46
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.50 99.50
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.56 0.00 8.38 91.06
avg-cpu: %user %nice %system %iowait %steal %idle
0.63 0.00 0.00 0.00 25.32 74.05
avg-cpu: %user %nice %system %iowait %steal %idle
0.47 0.00 0.00 0.00 56.60 42.92
iostat -p ALL
,显示每个活动磁盘的进程 I/O 统计信息。
sda 1.01 17.07 6.21 267116608 97161968
sda1 0.00 0.00 0.00 5191 0
sda2 0.05 0.16 0.31 2464060 4890020
sda3 0.96 16.91 5.90 264643044 92271948
loop0 0.00 0.00 0.00 0 0
loop1 0.00 0.00 0.00 0 0
loop2 0.00 0.00 0.00 0 0
loop3 0.00 0.00 0.00 0 0
loop4 0.00 0.00 0.00 0 0
loop5 0.00 0.00 0.00 0 0
loop6 0.00 0.00 0.00 0 0
loop7 0.00 0.00 0.00 0 0
iostat -h
帮助命令
pidstat:用于显示与指定进程相关的统计信息
pidstat
直接输入,屏幕上会输出活动进程的统计信息
Linux 3.10.0-1160.76.1.el7.x86_64 (instance-20221010-2157) 01/21/2024 _x86_64_ (2 CPU)
05:51:30 PM UID PID %usr %system %guest %CPU CPU Command
05:51:30 PM 0 1 0.01 0.03 0.00 0.04 1 systemd
05:51:30 PM 0 2 0.00 0.00 0.00 0.00 1 kthreadd
05:51:30 PM 0 6 0.00 0.03 0.00 0.03 0 ksoftirqd/0
05:51:30 PM 0 7 0.00 3.59 0.00 3.59 0 migration/0
05:51:30 PM 0 8 0.00 0.00 0.00 0.00 1 rcu_bh
05:51:30 PM 0 9 0.00 0.07 0.00 0.07 1 rcu_sched
05:51:30 PM 0 11 0.00 0.60 0.00 0.60 0 watchdog/0
05:51:30 PM 0 12 0.00 0.23 0.00 0.23 1 watchdog/1
05:51:30 PM 0 13 0.00 1.68 0.00 1.68 1 migration/1
05:51:30 PM 0 14 0.00 0.02 0.00 0.02 1 ksoftirqd/1
05:51:30 PM 0 16 0.00 0.00 0.00 0.00 1 kworker/1:0H
05:51:30 PM 0 18 0.00 0.00 0.00 0.00 1 kdevtmpfs
05:51:30 PM 0 20 0.00 0.00 0.00 0.00 1 khungtaskd
pidstat -p PID
显示指定进程号的详细统计信息。比如我这里输入sftp的进程号,就会输出sftp进程相关的使用信息
[root@instance-20221010-2157 ~]# pidstat -p 18698
Linux 3.10.0-1160.76.1.el7.x86_64 (instance-20221010-2157) 01/21/2024 _x86_64_ (2 CPU)
05:52:55 PM UID PID %usr %system %guest %CPU CPU Command
05:52:55 PM 0 18698 0.00 0.00 0.00 0.00 1 sftp-server
以上命令都是常用命令,可以覆盖我们使用的大多情况了,更具体的可以使用-h 来查询相关的参数命令
创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。