sysstat - linux下的性能监控神器之使用(二)

2024-01-22 10:00:05 浏览数 (2)

在上一篇文章,我们介绍了sysstat,以及它的安装。这一篇,将介绍sysstat的一些实用命令。安装完sysstat后会包含mpstat,iostat,pidstat,Tapestat等。

mpstat:监控cpu

如果我直接在屏幕上输出 mpstat,显示所有处理器的平均统计信息,包括 CPU数量,cpu的 利用率、闲置率等。

代码语言:javascript复制
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是第二颗

代码语言:javascript复制
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的性能信息以及平均负载情况

代码语言:javascript复制
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请求完成的时间和 每秒读和写 扇区的数量。

代码语言:javascript复制
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 次。

代码语言:javascript复制
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 统计信息。

代码语言:javascript复制
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 直接输入,屏幕上会输出活动进程的统计信息

代码语言:javascript复制
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进程相关的使用信息

代码语言:javascript复制
[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 来查询相关的参数命令

创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。

0 人点赞