linux

【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 
  1. iostat -c 1 5 查看CPU状态,指定时间间隔为1秒,总共显示5次。


    image.png

如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。
%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

  1. iostat -d sda 查看指定磁盘信息


    image.png
  2. iostat -d -k 1 5 查看TPS和吞吐量信息


    image.png
  1. iostat -x /dev/vdb 2
image.png
  1. iostat -x -d -k 1 5 查看设备响应率(%util)和响应时间(await)
image.png image.png
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/`

上一篇下一篇

猜你喜欢

热点阅读