【iostat】用iostat 命令来监视系统输入/输出、设备负
2023-07-02 本文已影响0人
Bogon
iostat命令 被用于监视系统输入输出设备和CPU的使用情况。
它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。
同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
# yum -y install sysstat
# yum info sysstat
Last metadata expiration check: 3:00:39 ago on Mon 26 Jun 2023 11:52:12 AM CST.
Installed Packages
Name : sysstat
Version : 12.5.4
Release : 4.oe2203
Architecture : x86_64
Size : 1.6 M
Source : sysstat-12.5.4-4.oe2203.src.rpm
Repository : @System
From repo : update
Summary : System performance tools for the Linux operating system
URL : http://sebastien.godard.pagesperso-orange.fr/
License : GPLv2+
Description : The sysstat package contains various utilities, common to many commercial
: Unixes, to monitor system performance and usage activity:
: iostat: reports CPU statistics and input/output statistics for block devices
: and partitions.
: mpstat: reports individual or combined processor related statistics.
: pidstat: reports statistics for Linux tasks (processes) : I/O, CPU, memory, etc.
: tapestat: reports statistics for tape drives connected to the system.
: cifsiostat: reports CIFS statistics.
: Sysstat also contains tools you can schedule via cron or systemd to collect and
: historize performance and activity data:
: sar: collects, reports and saves system activity information (see below a list
: of metrics collected by sar).
: sadc: is the system activity data collector, used as a backend for sar.
: sa1: collects and stores binary data in the system activity daily data file.
: It is a front end to sadc designed to be run from cron or systemd.
: sa2: writes a summarized daily activity report. It is a front end to sar
: designed to be run from cron or systemd.
: sadf: displays data collected by sar in multiple formats (CSV, XML, JSON, etc.)
: and can be used for data exchange with other programs. This command can also
: be used to draw graphs for the various activities collected by sar using SVG (
: Scalable Vector Graphics) format.
iostat(选项)(参数)
-c:仅显示CPU使用情况;
-d:仅显示设备利用率;
-k:显示状态以千字节每秒为单位,而不使用块每秒;
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设备和所有被使用的其他分区的状态;
-t:显示每个报告产生时的时间;
-V:显示版号并退出;
-x:显示扩展状态。
参数
- 间隔时间:每次报告的间隔时间(秒);
- 次数:显示报告的次数。
查看设备符与LVM对应关系:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 15.6G 0 loop /mnt
vda 253:0 0 100G 0 disk
├─vda1 253:1 0 4G 0 part [SWAP]
└─vda2 253:2 0 96G 0 part /
vdb 253:16 0 500G 0 disk
└─vg_data-lv_data 252:0 0 500G 0 lvm /data
# lvdisplay | awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'
dm-0 lv_data
用iostat -x /dev/sda1来观看磁盘I/O的详细情况:
iostat -x /dev/sda1
Linux 2.6.18-164.el5xen (localhost.localdomain)
2010年03月26日
avg-cpu: %user %nice %system %iowait
%steal %idle
0.11 0.02 0.18 0.35
0.03 99.31
Device: tps Blk_read/s Blk_wrtn/s
Blk_read Blk_wrtn
sda1 0.02 0.08
0.00 2014 4
-
iostat -c 1 5 查看CPU状态,指定时间间隔为1秒,总共显示5次。
image.png
如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。
%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
-
iostat -d sda 查看指定磁盘信息
image.png -
iostat -d -k 1 5 查看TPS和吞吐量信息
image.png
- iostat -x /dev/vdb 2
- iostat -x -d -k 1 5 查看设备响应率(%util)和响应时间(await)
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了
(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge)
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了
r/s:每秒完成的读次数(The number of read requests that were issued to the device per second)
w/s:每秒完成的写次数(The number of write requests that were issued to the device per second)
rkB/s:每秒读数据量(kB为单位)
wkB/s:每秒写数据量(kB为单位)
avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
avgqu-sz:平均等待处理的IO请求队列长度
await:每一个IO请求的处理的平均时间(毫秒为单位)。这里可以理解为IO的响应时间,一般地系统IO响应时间
应该低于5ms,如果大于10ms就比较大了。
r_await:读取请求的平均时间(毫秒为单位)
w_await:写入请求的平均时间(毫秒为单位)
svctm:平均每次IO请求的处理时间(毫秒为单位)
%util:在统计时间内所有处理IO时间,除以总共统计时间
例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。
一般地,如果该参数是100%表示设备已经接近满负荷运行了
当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈。
参考
iostat: 监视系统输入输出设备和CPU的使用情况
https://www.iplaysoft.com/tools/linux-command/c/iostat.html
用iostat 命令来监视系统输入/输出、设备负载
https://www.lmlphp.com/user/10581/article/item/458769/`