Sysstat 包包含许多商业单位共有的各种实用程序,用于监控系统性能和使用活动:
Sysstat 还包含您可以通过 cron 或 systemd 计划收集和记录性能和活动数据的工具:
使用方法: iostat [ options ] [ <interval> [ <count> ] ]
$ iostat --help
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -s ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ { -f | +f } <directory> ] [ -j { ID | LABEL | PATH | UUID | ... } ]
[ --dec={ 0 | 1 | 2 } ] [ --human ] [ -o JSON ]
[ [ -H ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]
[ <device> [...] | ALL ]
参数释义:
-c : 仅显示cpu的状态
-d : 仅显示存储设备的状态,不可以和-c一起使用
-k : 默认显示的是读入读出的block信息,用-k可以改成KB大小来显示 -m
-t : 显示日期
-p device | ALL : device为某个设备或者某个分区,如果使用ALL,就表示要显示所有分区和设备的信息
-x : 显示扩展状态,显示更多内容
举例:每一秒钟打印一次CPU状态,打印3次
$ iostat -c 1 3
Linux 3.10.0-957.21.3.el7.x86_64 (frytea-dev-test) 07/14/2020 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.40 0.00 0.31 0.00 0.00 99.29
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.50 0.00 0.00 99.50
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.00 0.00 0.00 99.50
距离:显示详细信息
iostat -x
Linux 3.10.0-957.21.3.el7.x86_64 (frytea-dev-test) 07/14/2020 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.40 0.00 0.31 0.00 0.00 99.29
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz f/s f_await aqu-sz %util
vda 0.01 0.14 0.00 0.06 1.19 16.99 0.65 5.88 0.21 24.79 7.65 9.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01
说明:
rrqm/s : 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s : 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s : 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s : 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s : 每秒读扇区数。即 delta(rsect)/s
wsec/s : 每秒写扇区数。即 delta(wsect)/s
rkB/s : 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s : 每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz : 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz : 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await : 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm : 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util : 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。
delta(use)/s/1000 (因为use的单位为毫秒)如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
idle 小于70% IO压力就较大了,一般读取速度有较多的wait. #CPU空闲等待时间
使用方法:mpstat [ options ] [ <interval> [ <count> ] ]
$ mpstat --help
Usage: mpstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -n ] [ -u ] [ -V ]
[ -I { SUM | CPU | SCPU | ALL } ] [ -N { <node_list> | ALL } ]
[ --dec={ 0 | 1 | 2 } ] [ -o JSON ] [ -P { <cpu_list> | ALL } ]
举例:查看所有处理器统计数据
$ mpstat -P ALL 1 3
Linux 3.10.0-957.21.3.el7.x86_64 (frytea-dev-test) 07/14/2020 _x86_64_ (2 CPU)
11:35:24 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
11:35:25 AM all 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.00
11:35:25 AM 0 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00
11:35:25 AM 1 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00
11:35:25 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
11:35:26 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:35:26 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:35:26 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:35:26 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
11:35:27 AM all 0.00 0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00 99.01
11:35:27 AM 0 0.00 0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00 99.01
11:35:27 AM 1 0.00 0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00 99.01
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 0.17 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.33
Average: 0 0.33 0.00 0.33 0.00 0.00 0.00 0.00 0.00 0.00 99.33
Average: 1 0.00 0.00 0.67 0.00 0.00 0.00 0.00 0.00 0.00 99.33
说明:
pidstat -dl
Linux 3.10.0-957.21.3.el7.x86_64 (frytea-dev-test) 07/14/2020 _x86_64_ (2 CPU)
12:01:54 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
12:01:54 PM 0 1 0.11 0.58 0.05 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
12:01:54 PM 0 48 0.00 0.00 0.00 kworker/u4:1
12:01:54 PM 0 226 0.00 0.00 0.00 kworker/u4:2
12:01:54 PM 0 328 0.00 0.85 0.00 jbd2/vda1-8
12:01:54 PM 0 397 0.00 1.95 0.00 /usr/lib/systemd/systemd-journald
12:01:54 PM 0 416 0.01 0.00 0.00 /usr/lib/systemd/systemd-udevd
12:01:54 PM 0 496 0.00 0.01 0.00 /sbin/auditd
12:01:54 PM 0 594 0.00 0.00 0.00 /usr/lib/systemd/systemd-logind
12:01:54 PM 999 598 0.00 0.00 0.00 /usr/lib/polkit-1/polkitd --no-debug
12:01:54 PM 81 599 0.00 0.00 0.00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
12:01:54 PM 998 616 0.00 0.00 0.00 /usr/sbin/chronyd
12:01:54 PM 0 659 0.00 0.00 0.00 /usr/sbin/atd -f
12:01:54 PM 0 673 0.00 0.00 0.00 /sbin/agetty --keep-baud 115200,38400,9600 ttyS0 vt220
12:01:54 PM 0 895 0.00 0.00 0.00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
12:01:54 PM 0 898 0.00 0.04 0.00 /usr/sbin/rsyslogd -n
12:01:54 PM 0 1110 0.01 1.80 0.02 /usr/sbin/sshd -D
12:01:54 PM 0 13001 0.00 0.00 0.00 /usr/local/aegis/AliSecGuard/AliSecGuard
12:01:54 PM 0 13646 0.00 0.01 0.00 /usr/sbin/crond -n
12:01:54 PM 0 17624 0.00 0.02 0.00 /usr/local/aegis/aegis_update/AliYunDunUpdate
12:01:54 PM 0 17651 0.00 0.00 0.00 /usr/local/aegis/aegis_client/aegis_10_83/AliYunDun
12:01:54 PM 0 23766 0.00 0.00 0.00 /usr/sbin/aliyun-service
12:01:54 PM 0 23924 0.00 0.02 0.00 -bash
Tapestat报告提供连接到系统的每个磁带驱动器的统计信息。
使用方法: tapestat [ options ] [ <interval> [ <count> ] ]
$ tapestat --help
Usage: tapestat [ options ] [ <interval> [ <count> ] ]
Options are:
[ --human ] [ -k | -m ] [ -t ] [ -V ] [ -y ] [ -z ]
[root@frytea-dev-test ~]# tapestat -k
CIFS报告提供每个装载的CIFS文件系统的统计信息。
使用方法: cifsiostat [ options ] [ <interval> [ <count> ] ]
$ cifsiostat --HELO
Usage: cifsiostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ --dec={ 0 | 1 | 2 } ] [ --human ] [ -h ] [ -k | -m ] [ -t ] [ -V ]
sar 工具比较强大,既能收集系统CPU、硬盘、动态数据,也能显示动态显示,更能查看二进制数据文件;sar 的应用比较多,而且也比较复杂,数据更为精确。我们只了解一下常用的内容就行,大多数内容我们了解就行。
sar --help
Usage: sar [ options ] [ <interval> [ <count> ] ]
Main options and reports (report name between square brackets):
-B Paging statistics [A_PAGE]
-b I/O and transfer rate statistics [A_IO]
-d Block devices statistics [A_DISK]
-F [ MOUNT ]
Filesystems statistics [A_FS]
-H Hugepages utilization statistics [A_HUGE]
-I { <int_list> | SUM | ALL }
Interrupts statistics [A_IRQ]
-m { <keyword> [,...] | ALL }
Power management statistics [A_PWR_...]
Keywords are:
CPU CPU instantaneous clock frequency
FAN Fans speed
FREQ CPU average clock frequency
IN Voltage inputs
TEMP Devices temperature
USB USB devices plugged into the system
-n { <keyword> [,...] | ALL }
Network statistics [A_NET_...]
Keywords are:
DEV Network interfaces
EDEV Network interfaces (errors)
NFS NFS client
NFSD NFS server
SOCK Sockets (v4)
IP IP traffic (v4)
EIP IP traffic (v4) (errors)
ICMP ICMP traffic (v4)
EICMP ICMP traffic (v4) (errors)
TCP TCP traffic (v4)
ETCP TCP traffic (v4) (errors)
UDP UDP traffic (v4)
SOCK6 Sockets (v6)
IP6 IP traffic (v6)
EIP6 IP traffic (v6) (errors)
ICMP6 ICMP traffic (v6)
EICMP6 ICMP traffic (v6) (errors)
UDP6 UDP traffic (v6)
FC Fibre channel HBAs
SOFT Software-based network processing
-q [ <keyword> [,...] | PSI | ALL ]
System load and pressure-stall statistics
Keywords are:
LOAD Queue length and load average statistics [A_QUEUE]
CPU Pressure-stall CPU statistics [A_PSI_CPU]
IO Pressure-stall I/O statistics [A_PSI_IO]
MEM Pressure-stall memory statistics [A_PSI_MEM]
-r [ ALL ]
Memory utilization statistics [A_MEMORY]
-S Swap space utilization statistics [A_MEMORY]
-u [ ALL ]
CPU utilization statistics [A_CPU]
-v Kernel tables statistics [A_KTABLES]
-W Swapping statistics [A_SWAP]
-w Task creation and system switching statistics [A_PCSW]
-y TTY devices statistics [A_SERIAL]
参数说明:
-A 显示所有历史数据,通过读取/var/log/sar目录下的所有文件,并把它们分门别类的显示出来;
-b 通过设备的I/O中断读取设置的吞吐率;
-B 报告内存或虚拟内存交换统计;
-c 报告每秒创建的进程数;
-d 报告物理块设备(存储设备)的写入、读取之类的信息,如果直观一点,可以和p参数共同使用,-dp
-f 从一个二进制的数据文件中读取内容,比如 sar -f filename
-i interval 指定数据收集的时间,时间单位是秒;
-n 分析网络设备状态的统计,后面可以接的参数有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV
-o 把统计信息写入一个文件,比如 -o filename ;
-P 报告每个处理器应用统计,用于多处理器机器,并且启用SMP内核才有效;
-p 显示友好设备名字,以方便查看,也可以和-d和-n 参数结合使用,比如 -dp 或-np
-r 内存和交换区占用统计;
-R
-t 这个选项对从文件读取数据有用,如果没有这个参数,会以本地时间为标准 读出;
-u 报告CPU利用率的参数;
-v 报告inode,文件或其它内核表的资源占用信息;
-w 报告系统交换活动的信息; 每少交换数据的个数;
-W 报告系统交换活动吞吐信息;
-x 用于监视进程的,在其后要指定进程的PID值;
-X 用于监视进程的,但指定的应该是一个子进程ID
举例:查看网络设备的网络吞吐量
# sar -n DEV 2 4
Linux 3.10.0-957.21.3.el7.x86_64 (frytea-dev-test) 07/14/2020 _x86_64_ (2 CPU)
12:00:50 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
12:00:52 PM eth0 2.50 2.50 0.14 1.28 0.00 0.00 0.00 0.00
12:00:52 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:00:52 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
12:00:54 PM eth0 1.50 1.00 0.09 0.33 0.00 0.00 0.00 0.00
12:00:54 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:00:54 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
12:00:56 PM eth0 2.00 1.50 0.12 0.36 0.00 0.00 0.00 0.00
12:00:56 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:00:56 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
12:00:58 PM eth0 1.00 1.00 0.07 0.33 0.00 0.00 0.00 0.00
12:00:58 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: eth0 1.75 1.50 0.11 0.58 0.00 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
参数释义:
IFACE:设备名;
rxpck/s:每秒收到的包;
rxbyt/s:每秒收到的所有包的数量 ;
txbyt/s:每秒发送的所有包的数量 ;
txbyt/s:每秒发送的所有包的大小;
rxcmp/s:每秒收到数的据压缩包的数量;
txcmp/s :每秒传输的数据压缩包的数据;
rxmcst/s: 每秒收到的多播的包数量;
sadc 位于 /usr/local/lib64/sa/ 目录中(Centos 7.6),如果你没有设置可执行路径,要用绝对路径来运行。
sdac只是一个搜集写入工具,并不直接回显于屏幕上。sadc 是把数据写在一个二进制的文件中,如果想查看数据内容,需要用sadf工具来显示。
使用方法: /usr/local/lib64/sa/sadc [ options ] [ <interval> [ <count> ] ] [ <outfile> ]
$ /usr/local/lib64/sa/sadc --help
Usage: /usr/local/lib64/sa/sadc [ options ] [ <interval> [ <count> ] ] [ <outfile> ]
Options are:
[ -C <comment> ] [ -D ] [ -F ] [ -f ] [ -L ] [ -V ]
[ -S { INT | DISK | IPV6 | POWER | SNMP | XDISK | ALL | XALL } ]
举例: /usr/local/lib/sa/sadc - (后面的“-”是必须的,少了会出乱码和报错),则会输出数据到 /var/log/sa/ 目录下的一个文件中。
Sa1 命令被设计为由cron命令自动启动。
Sa2 命令接受sar命令的大多数标志和参数。
Sa2 命令被设计为由cron命令自动启动。
sadf 能从二进制文件中提取sar所收集的数据;显示的格式不如sar直观,其主要用于导出为csv、xml等格式的文件,方便导入数据库或excel等程序.