linux磁盘读写性能监控

贡献一些我平常用的监控服务器性能的命令

1.硬盘读写性能,#查看TPS和吞吐量信息

iostat-d-k110

Device:tpskB_read/skB_wrtn/skB_readkB_wrtn

sda14.54417.21368.061571935756213867444535

dm-0104.60415.64366.871566031282913822621684

dm-10.691.571.195904128044822840

Device:tpskB_read/skB_wrtn/skB_readkB_wrtn

sda0.000.000.0000

dm-00.000.000.0000

dm-10.000.000.0000

Device:tpskB_read/skB_wrtn/skB_readkB_wrtn

sda0.000.000.0000

dm-00.000.000.0000

dm-10.000.000.0000

Device:tpskB_read/skB_wrtn/skB_readkB_wrtn

sda7.140.00208.160204

dm-052.040.00208.160204

dm-10.000.000.0000

-d:显示某块具体硬盘,这里没有给出硬盘路径就是默认全部了

-k:以KB为单位显示

1:统计间隔为1秒

10:共统计10次的

tps:该设备每秒的传输次数(Indicatethenumberoftransferspersecondthatwereissuedtothedevice.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。

kB_read/s:每秒从设备(driveexpressed)读取的数据量;kB_wrtn/s:每秒向设备(driveexpressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

一开始的数值很大是因为显示的是累计读写量

2.iostat-x参数,查看设备使用率(%util)、响应时间(await)

iostat-d-k-x110

Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrq-szavgqu-szawaitsvctm%util

sda4.8785.888.416.14417.21368.06107.980.028.922.733.97

dm-00.000.0012.8991.72415.64366.8714.960.061.700.383.95

dm-10.000.000.390.301.571.198.000.0235.251.450.10

rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。

r/s:每秒响应的读取请求数;w/s:每秒响应的写入请求数;rkB/s:每秒读取的数据量;wkB/s:每秒写入的数据量

await:每一个IO请求的处理的平均时间(单位是微秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。

%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util=0.8/1=80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

3.iostat-c参数,查看CPU状态信息

iostat-c110

avg-cpu:%user%nice%system%iowait%steal%idle

1.280.000.430.840.0097.45

avg-cpu:%user%nice%system%iowait%steal%idle

0.770.000.260.000.0098.98

avg-cpu:%user%nice%system%iowait%steal%idle

13.710.002.280.000.0084.01

4.vmstat命令,查看内存使用情况

vmstat110

procs-----------memory-------------swap-------io------system-------cpu------

rbswpdfreebuffcachesisobiboincsussyidwast

00962934580149988274084001049200109710

00962934580149988274084000010882520010000

009629344681499882742000014801071253009900

00962934468149988274200000010692830010000

209629266561500122843040003321166381719200

009629350881500322740840002656012848184154960

1096293387215009627427600244012268873645900

009629338721501202746920000124416461518400

00962933756150156275040000011987051338400

00962933756150156275040000010973280010000

Procs

r:在运行队列中等待的进程数

b:在等待io的进程数

Memory

swpd:虚拟内存使用情况,单位:KB

free:空闲的内存,单位KB

buff:被用来做为缓存的内存数,单位:KB

Swap

si:从磁盘交换到内存的交换页数量,单位:KB/秒

so:从内存交换到磁盘的交换页数量,单位:KB/秒

IO

bi:发送到块设备的块数,单位:块/秒

bo:从块设备接收到的块数,单位:块/秒

System

in:每秒的中断数,包括时钟中断

cs:每秒的环境(上下文)切换次数

CPU

按CPU的总使用百分比来显示

us:CPU使用时间

sy:CPU系统使用时间

id:闲置时间

r、b列一般为0,表示没有等待进程,如果不为0表示系统性能有问题

si、so两列,表示内存交换的频繁程度,如果数值长期很大,表示内存不够,要和硬盘交换数据,也可以表示要读写的数据每次都不一样

bi、bo两列,表示I/O输入输出很频繁

相关推荐