简单测试虚拟服务器(VPS)或云服务器的磁盘I/O性能

2月26日 · 2016年

磁盘I/O性能对服务器来说是非常重要的指标,能够较大影响网站的体验。特别是如果你使用“Tengine”作为Web Server,当大并发访问时,Tengine会需求较高的I/O,所以测试服务器的I/O是非常有必要的。

测试小文件随机读写的I/O能力

实际上大多数情况,我们的服务器不会读写大文件,小文件的读写能力才是最重要的,这也最影响网站性能的因素,我们使用如下测试指令:

dd bs=64k count=4k if=/dev/zero of=test oflag=dsync

dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取64k后就要先把这64k写入磁盘,然后再读取下面这64k,一共重复128次。这可能是最慢的一种方式了,因为基本上没有用到写缓存。这个命令可以模拟数据库的写入情况,如果你使用LNMP一键包,并且把MySQL架设在你自己的服务器上而没有使用云数据库,那么这个测试就非常用必要了。

一般来说,这个测试命令测出的数值超过10MB/S,对于建站就基本没有太大影响,超过30MB/S就可以比较稳定的建多个站点,超过50MB/S就是比较优秀的VPS了。

测试大文件写入的情况

对于大文件的写入模拟测试,可以使用这个命令:

dd bs=64k count=4k if=/dev/zero of=test conv=fdatasync

这个命令测试的结果比前一个应该会高出不少。

dd命令执行到最后会真正执行一次“同步(sync)”操作,所以这时候你得到的是读取这128M数据到内存并写入到磁盘上所需的时间。

由于目前很多VPS商(特别是以OpenVZ技术提供VPS的)都采用共享磁盘I/O,所以你应该在一天的不同时刻来测试,以获取最接近真实情况的数值。

本文摘自Seryo Network,标个记号~

2 条回应
验证码
输入运算符及数字使等式成立
{{comment.validate_num1}} = {{comment.validate_num2}}
点赞确定
退出登录?
取消 确定
  1. 小易分享网2016-8-23 · 5:28

    过来看看你的博客,希望每天都更新一些文章。

  2. 小鱼2016-3-1 · 0:19

    测试一下