上一篇提到通过top命令发现wa使用率很高,就是磁盘的I/O输入输出比较高,这意味这磁盘有高频次的输入或输出请求,有可能是真的有大量进程调用,也有可能是磁盘出现损坏。
我们可以通过iostat这个命令来分析到底是哪一种情况,导致的wa使用率增高。
我实用的是centos系统,如果系统没有安装iostat命令,需要先安装
centos的安装命令是 yum install sysstat
ubuntu的安装命令是 apt-get install sysstat
安装完之后,启动sysstat命令 /etc/init.d/sysstat start
设置sysstat自启动命令,随着系统重启自动启动 checkfig sysstat on
安装好之后,我们就可以直接敲入iostat回车,就可以查看各磁盘的输入输出情况,来判断是什么原因导致的磁盘I/O变高。
iostat参数说明
tps: 每秒I/O传输请求量;
kB_read/s:每秒读取多少KB;
kB_wrtn/s:每秒写多少KB;
kB_read:一共读了多少KB;
kB_wrtn:一共写了多少KB。
iotop说明
也可以通过iotop命令来查看I/O情况 iotop命令类似于top命令,但是显示的是各个进程的I/O情况,对于定位I/O操作较重的进程有比较大的作用。
centos系统安装命令 yum -y install iotop
可以查看到进行实时的I/O变化,来定位问题
sar说明
sar命令同样来自sysstat工具包,我们刚才安装了systat工具包,也可以直接实用sar查看具体时间的进程,内存,I/O情况。
可以记录系统的CPU负载、I/O状况和内存使用记录,便于历史数据的回放。
Ubuntu系统上,sysstat的配置文件在/etc/default/sysstat,sysstat默认关闭,通过将该文件中的ENABLED改为”true”启用;历史日志的存放位置为/var/log/sysstat
Red Hat系统上,sysstat的配置文件在/etc/sysconfig/sysstat文件,历史日志的存放位置为/var/log/sa
两种系统上,统计信息都是每10分钟记录一次,每天的23:59会分割统计文件,这些操作的频率都在/etc/cron.d/sysstat文件配置。
默认情况下,sar命令显示当天的统计信息,不带参数显示CPU统计信息,参数-r显示收集的内存记录,-b显示磁盘I/O