1、磁盘IO,即输入/输出(Input/Output),这是测试磁盘性能一个重要指标,一些便宜的VPS主机为了降低成本,以大量的低性能的硬盘来充当服务器,导致VPS主机因为IO差而拖了整个主机性能的后腿。

2、测试VPS主机磁盘IO的性能可以执行以下两个命令:


dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

3、conv=fdatasync与oflag=dsync的区别在于:sync函数只是将所有修改过的块缓冲区排入写队列,然后就返回,它并不等待实际写磁盘操作结束。

4、而fsync函数只对由文件描述符filedes指定的单一文件起作用,并且等待写磁盘操作结束,然后返回。这是我的阿里云VPS的硬盘IO测试结果。 

5、SSD硬盘速度测试。对于VPS采用SSD硬盘的,为了更加真实的反映出SSD硬盘的性能,在控制端命令中执行以下命令:


yum install hdparm -y
fdisk -l
hdparm -t /dev/hda

6、第一句是安装hdparm,第二句是找出对应磁盘的驱动号,第三句就是利用hdparm在指定的硬盘上测试硬盘的读写速度。

7、VPS硬盘IO负载测试。使用top命令查看%wa数据,表示IO等待所占用的CPU时间的百分比,高过30%时IO压力可能比较大。

8、另外一条命令是:iostat -x 1 10,如果没有执行安装:yum install sysstat,主要查看%util 和%idle ,如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,idle小于70% IO压力就较大了,一般读取速度有较多的wait。