linux查看磁盘io的几种方法
原文地址:http://www.3lian.com/edu/2013/12-03/112174.html
怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式:
第一种:用top命令中的cpu信息观察
Top可以看到的cpu信息有:
Tasks:29total,1running,28sleeping,0stopped,0zombie
Cpu(s):0.3%us,1.0%sy,0.0%ni,98.7%id,0.0%wa,0.0%hi,0.0%si
具体的解释如下:
Tasks:29total进程总数
1running正在运行的进程数
28sleeping睡眠的进程数
0stopped停止的进程数
0zombie僵尸进程数
Cpu(s):
0.3%us用户空间占用CPU百分比
1.0%sy内核空间占用CPU百分比
0.0%ni用户进程空间内改变过优先级的进程占用CPU百分比
98.7%id空闲CPU百分比
0.0%wa等待输入输出的CPU时间百分比
0.0%hi
0.0%si
0.0%wa的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果wa的数量比较大,说明等待输入输出的的io比较多。
第二种:用vmstat
vmstat命令报告关于线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息。由vmstat命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
输入命令:
vmstat25
如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多。
vmstat参数解释:
Procs
r:等待运行的进程数b:处在非中断睡眠状态的进程数w:被交换出去的可运行的进程数。此数由linux计算得出,但linux并不耗尽交换空间
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:闲置时间
准测
更多vmstat使用信息
第二种:用iostat
安装:
Iostat是sysstat工具集的一个工具,需要安装。
Centos的安装方式是:
yuminstallsysstat
Ubuntu的安装方式是:
aptitudeinstallsysstat
使用:
iostat-dx显示磁盘扩展信息
root@fileapp:~#iostat-dx
r/s和w/s分别是每秒的读操作和写操作,而rKB/s和wKB/s列以每秒千字节为单位显示了读和写的数据量
如果这两对数据值都很高的话说明磁盘io操作是很频繁。