linux命令学习(31)-iostat

【命令名称】iostat
【使用权限】所有人
【命令语法】iostat [参数][时间][次数]
【功能说明】查看cpu,硬盘等设备的活动情况
【常用参数】c 显示cpu使用信息
            d 显示磁盘使用信息,后面可以指定分区。
            N 显示磁盘阵列(LVM)使用信息
            n 显示NFS的使用信息
            p 显示各个分区的使用信息
            k 以KB为单位显示
            m 以MB为单位显示
            t 显示终端和CPU的信息
            x 显示详细的信息
【命令实例】
1.第隔2秒钟就运行一次iostat,共2次
 [cxc@cxcserver ~]$ iostat 2 2
Linux 2.6.32-279.el6.x86_64 (cxcserver.computer)        01/30/2013      _x86_64_        (2 CPU)
 
avg-cpu: %user   %nice %system %iowait %steal   %idle
           0.03    0.00    0.01    0.04    0.00   99.92
 
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.25         3.22         6.42     139764     278325
dm-0              0.00         0.02         0.00        848          0
 
avg-cpu: %user   %nice %system %iowait %steal   %idle
           0.75    0.00    0.25    0.00    0.00   99.00
 
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda               0.50         0.00       128.00          0        256

创新互联公司为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站制作、成都网站建设, 我们的网页设计师为您提供的解决方案。

dm-0              0.00         0.00         0.00          0          0
 
[cxc@cxcserver ~]$
cpu属性值说明:
%user:     CPU处在用户模式下的时间百分比
%nice:    CPU处在带NICE值的用户模式下时间比
%system:   CPU处在系统模式下的时间的百分比
%iowait:   CPU等待输入输出完成时间的百分比
%idle:     CPU空闲时间的百分比
%steal:   当管理另一虚拟CPU时,虚拟CPU的意识的等待百分比
说明:如果%iowait的值过高,表示硬盘存在I/O瓶颈,idle的值越高,表示CPU比较空闲,如果idle值高但系统响应速度慢时,可能是CPU等待分配内存,我们可以用free来查看内存。如果swap被占用多数,可以考虑内存。如果的%Idle的值持续低的话,表示考虑加增加CPU
 
2.iostat 输出所以分区信息
[cxc@cxcserver ~]$ iostat -p
Linux 2.6.32-279.el6.x86_64 (cxcserver.computer)        01/30/2013      _x86_64_        (2 CPU)
 
avg-cpu: %user   %nice %system %iowait %steal   %idle
           0.03    0.00    0.01    0.04    0.00   99.92
 
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.25         3.15         6.43     139764     285213
sda1              0.21         2.93         6.43     129818     285208
sda3              0.00         0.03         0.00       1384          0
sda4              0.00         0.00         0.00         20          1
sda5              0.01         0.07         0.00       3008          0
sda6              0.01         0.04         0.00       1744          0
sda7              0.01         0.03         0.00       1542          0
dm-0              0.00         0.02         0.00        848          0
 
[cxc@cxcserver ~]
硬盘简单属性说明:
Device      设备名称
Tps         设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O”请求
Blk_read/s:开机到现在,平均每秒从设备读取数据量
Blk_wrtn/s:开机到现在,平均每秒从设备写入数据量
Blk_read    开机到现在,读取的数据问题
Blk_wrtn    开机到现在,写入的数据总量
 
3. iostate详细输出硬盘的详细信息
[cxc@cxcserver ~]$ iostat -d -x -k -p
Linux 2.6.32-279.el6.x86_64 (cxcserver.computer)        01/30/2013      _x86_64_        (2 CPU)
 
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await svctm %util
sda               0.13     0.63    0.07    0.17     1.52     3.22    38.65     0.00    5.49   4.57   0.11
sda1              0.04     0.63    0.04    0.17     1.41     3.22    43.53     0.00    5.92   5.10   0.11
sda3              0.00     0.00    0.00    0.00     0.02     0.00     8.49     0.00    4.02   4.01   0.00
sda4              0.00     0.00    0.00    0.00     0.00     0.00     4.20     0.00   52.00 52.00   0.00
sda5              0.00     0.00    0.01    0.00     0.03     0.00     8.72     0.00    1.58   1.58   0.00
sda6              0.02     0.00    0.01    0.00     0.02     0.00     5.24     0.00    1.86   1.69   0.00
sda7              0.03     0.00    0.01    0.00     0.02     0.00     6.24     0.00    2.96   2.84   0.00
dm-0              0.00     0.00    0.00    0.00     0.01     0.00     7.64     0.00    1.40   1.06   0.00
 
[cxc@cxcserver ~]$
 
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     每秒读扇区数
wsec/s     每秒写扇区数
rkB/s      每秒读k字节数
wkB/s      每秒写k字节数
avgrq-sz   平均每次设备I/O操作的数据大小,rsect+wsect/rio+wio
avgqu-sz   平均I/O队列长度,即delta(aveg)/s/1000
await      平均每次设备I/O操作的等待时间(毫秒)即delta(ruse+wuse)/delta(rio+wio)
svctm      平均每次设备I/O操作的服务时间(毫秒)即delta(use)/delta(rio+wio)
%util      一秒钟有百分之多少的时间用于I/O的操作,
如果%util接近100%,I/O系统已经满负荷,磁盘出现瓶颈
如果%util接近70%,I/O压力就大了,一般读取速度有较多的wait
avgqu-sz 也是个做 IO 调优时需要注意的地方,这个就是直接每次操作的数据的大小,如果次数多,但数据拿的小的话,其实 IO 也会很小。如果数据拿的大,才IO 的数据会高。也可以通过 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s。也就是讲,读定速度是这个来决定的。
svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。
队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。
 
4.通过iostat输出cpu信息
[cxc@cxcserver ~]$ iostat -c
Linux 2.6.32-279.el6.x86_64 (cxcserver.computer)        01/30/2013      _x86_64_        (2 CPU)
 
avg-cpu: %user   %nice %system %iowait %steal  %idle
           0.03    0.00    0.01    0.04    0.00   99.93
 
[cxc@cxcserver ~]$

新闻标题:linux命令学习(31)-iostat
分享链接:http://pwwzsj.com/article/ihpjdo.html