开发者社区> 问答> 正文

正确解读云主机的磁盘性能

经常在各社区论坛里看到有用户以dd值来评论某主机或者某主机商的硬盘性能,但几乎从未见过有用户能认识到IO wait这个值的重要性。

dd命令原本是用来拷贝文件的,但是能同时显示所用的时间与速度,所以经常被用来测试主机的硬盘读写性能。

而IO wait的值则代表CPU在处理任务时有多少百分比的时间是在等待硬盘读写。理论上来说,当IO wait值为0时,硬盘的读写速度,1MB/s和100MB/s对于程序的处理时间是没有影响的。

如果你不懂技术也不愿意探讨技术,那么可能转换成简单点的逻辑问题。
dd速度是别人能给你多少。
IO wait是别人给你的东西有没有满足你的需求。

个人愚见,如果能满足自己的需求,不必在意别人给了多少,因为给的多了你也用不上,给你一个1秒读写1TB的硬盘,你又能如何呢,能当饭吃?当IO wait很小时,磁盘读写再快,它对程序执行时间的影响也是微乎其微的。

而现在存在的一个普遍的问题是,很多人只看给了多少(dd速度值),而不(会)看有没有达到自己的需求。

在Linux系统下,执行top命令,可以看到运行界面:


圈住的值,就是IO wait值。

但是我们要看的不是这个,而是按下字母q上面的数字1键(不是数字键盘上的1),然后得到的运行界面:



这样我们可以看到每个CPU的运行状态,wait值也是相对于每个CPU的。而第一张图中的则是计算的平均wait值,举个例子,当有一个CPU核心的wait值达到100%时,那么按8核CPU计算,平均值只有12.5%,如果这样看的话,这个值是不高的,无法发现问题,而当一个核心wait达到100%时,其实问题已经非常严重。(也就是说,平均值小,不一定没问题,但是平均值都已经很高了,就一定有问题)

所以,后面所说的wait值,都是指每个CPU的值,而不是平均值。(如果主机只有1颗CPU,这两个值是相同的)

IO wait值并不能独立出来看,它还涉及到另外一个量,就是数据的读写量,当一个硬盘的性能是固定的,读写的数据量越大,wait值越高。

执行vmstat 1命令,可以看到下面的执行结果:



命令中的1,代表的含意就是每秒输出1行。如果想中止,按ctrl+c。
bo是写入到磁盘,bi是从硬盘读取。b=block,在目前流行的版本中,1 block= 1024 bytes = 1KB。
vmstat命令也会显示wait的值,这个值仍然是平均值,并不精确。

如果硬盘的读写量非常少,但是vmstat值很高(举个例子比如bi和bo只有几十到几百,而wait在50以上),那么一定是硬盘问题,要么是硬盘性能,要么是其他的虚拟机或者母机上有影响到磁盘性能的操作(比如fsck)。怎么判断是硬盘问题还是受操作影响?如果只持续了几小时,一般是操作影响,如果持续时间长,比如几天,或者一直都一样,那肯定是硬盘的问题了。

从个人经验来看,如果wait值在10以下,受IO性能的影响很小,在20以下,可以接受,30就应该考虑解决问题了。
在这里只是说解决问题,而不是明确的说换主机,是因为,IO性能问题,并不一定是硬盘的性能问题,还有可能是程序的性能问题,比如最常见的MySQL的ORDER BY RAND()查询。
所以解决IO问题也就是从两方面下手,一是加强磁盘性能,比如用SSD,第二就是优化程序。

再给大家看一个硬盘性能的例子:



可以看到,读写量只有几十到几百KB,但是wait值经常的达到50%左右(注意这个值是平均值),这样的硬盘可以说已经达到了无法使用的地步了。
(强调下,这台主机并不是阿里云的)

很多人一提到阿里云,可能都会有一个硬盘IO差的印象,甚至某些主机商的客服也用这一点来攻击阿里云,而事实的情况是,阿里云的IO性能对绝大多数的网站应用都不会有问题。
另一点事实就是,有些IDC(包括知名和不知名的),性能其实要比阿里云的差非常多,比如前面提的这个例子,也是一家很有名的IDC,是有自己运营的机房的。只是因为阿里云的用户规模太大,所以评论也就多了。

看完这篇文章,希望大家都能对硬盘的IO性能有正确的认识,至少能做到:没有性能问题的时候,不要盲目的追求dd速度,有问题的时候,能正确的分析到问题。

原文链接:http://www.yundaiwei.com/post/442.html

展开
收起
云代维 2015-03-19 16:01:01 12438 0
6 条回答
写回答
取消 提交回答
  • Re正确解读云主机的磁盘性能
    云主机权威官方评测,pppcloud全SSD云主机力拔头筹?!简直防不胜防啊~评测文章链接,有兴趣的可以去看下哈 http://bbs.aliyun.com/read/132538.html?pos=5
    2015-12-23 16:54:57
    赞同 展开评论 打赏
  • Re正确解读云主机的磁盘性能
    推荐PPPCLOUD,全ssd主机,不在担心IO问题
    2015-12-23 15:28:00
    赞同 展开评论 打赏
  • linux 运维
    Re正确解读云主机的磁盘性能
    个人感觉,连个人的·pc都会因为磁盘读写速度哦影响计算性能,如果服务器的话ssd肯定是立竿见影,个人pc换上固态都有非一般的感觉,找找ssd的云主机试一下就知道。
    2015-12-22 15:26:09
    赞同 展开评论 打赏
  • IO不给力,用全SSD磁盘云主机呀!
    2015-12-21 11:33:04
    赞同 展开评论 打赏
  • Re正确解读云主机的磁盘性能
    顶个吧,那就。。。。
    2015-04-08 08:48:20
    赞同 展开评论 打赏
  • 不错 这个要支持!
    2015-04-06 23:11:31
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
ECS云磁盘热迁移 立即下载
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
ECS全知道(下) 镜像与快照+块存储、安全、网运维与监控 立即下载