参考徐文浩老师 理解IO_WAIT:I/O性能到底是怎么回事儿?
定位服务器上的应用程序是否存在I/O瓶颈,分为3步
步骤1:执行top命令
第三行 %Cpus
需要特别注意的是 wa 项目,那个项目代表的是 I/O wait,也就是 CPU 等待 IO 完成操作花费的时间占 CPU 的百分比。通常你的系统会变慢都是 I/O 产生的问题比较大!
步骤2:执行iostat命令,查看实际I/O操作情况
知道了 iowait 很大,那么我们就要去看一看,实际的 I/O 操作情况是什么样的。这个时候,你就可以去用 iostat 这个命令了。我们输入“iostat”,就能够看到实际的硬盘读写情况。
步骤3:执行iotop命令,确定哪个进程占用了大量IO
yum install iotop
通过 iotop 这个命令,你可以看到具体是哪一个进程实际占用了大量 I/O,那么你就可以有的放矢,去优化对应的程序了。
使用stress命令进行测试
参考:centos安装stress安装失败_Linux压力测试软件Stress安装及使用指南
http://ftp.debian.org/debian/pool/main/s/stress/
tar -zxvf xxx,之后进入到文件夹中进行编译安装
./configure
make
make install
使用下面的命令模拟出了wa的情况
新增1个写进程,每次写3G文件块
stress -d 1 --hdd-bytes 1G
先使用top命令查看
使用iostat命令查看详情
使用iotop命令查看哪个进程