当看到系统IO读写非常高的时候,首先要排查的是服务器是否正在大量使用交换空间,因为操作磁盘的速度远低于内存的速度,当系统内存耗尽,就会开始使用交换空间,系统的性能会受到严重影响。
内存使用满了,就会使用磁盘,使用磁盘就会加大IO.
只要是访问硬盘的操作,都会产生硬盘IO。所以排除这个问题分以下两步:
a.判断内存是否耗尽,如果是,那么只需解决内存耗尽的问题,IO读写会自动降下来
b.如果内存没有耗尽,找到耗IO比较大的那个进程,进行处理
iotop
专门显示磁盘io的命令,界面风格和top类似
安装:
yum install iotop
界面显示:
命令参数
--version 显示当前版本
-h 查看帮助信息
-b 批量处理
-n 设定循环几次
-d 设定显示的时间间隔
iostat
可以找到是哪个分区在进行大量的IO操作
第一行:显示当前所用系统版本,当前日期,64位系统,4核cpu
第二行:
%user 用户级别执行所使用的CPU百分比
%nice nice操作所使用的CPU百分比
%system 在系统级别(kernel)执行所使用的CPU百分比
%iowait CPU等待硬件IO时,所占用的百分比
%steal 当监控程序正服务于另外一个虚拟处理器时无意识的等待CPU所占的时间百分比
%idle CPU空闲时段所占的百分比
第三行:
vda 设备名
tps 每秒的IO请求数
kb_read/s 每秒读取的数据量
kb_wrtn/s 每秒写入的数据量
kb_read 读入的全部数据量
kb_wrtn 写入的全部数据量
参数说明:
-c 仅显示CPU统计信息
-d 仅显示磁盘统计信息
iostat 后加数字,表示每隔几秒刷新一次