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等程序.