Linode已经全系更换为SSD硬盘。EC2是云硬盘,数据存储走网络方式。对比了两者的IO速度,差别明显,在意料之中。
Linode的:
$ dd if=/dev/zero of=test.file bs=16k count=64k conv=fdatasync 65536+0 records in 65536+0 records out 1073741824 bytes (1.1 GB) copied, 2.14675 s, 500 MB/s
EC2的:
$ dd if=/dev/zero of=test.file bs=16k count=64k conv=fdatasync 65536+0 records in 65536+0 records out 1073741824 bytes (1.1 GB) copied, 21.8292 s, 49.2 MB/s
前者达到500MB/s,后者50MB/s左右,也就是说EC2硬盘速度是Linode的1/10.
对于分布式块存储,EC2用的EBS已经是佼佼者,其他云存储比如Ceph还不一定达到这个能力。测试多次观察到,云硬盘还有2点特殊:
- IO速率不稳定,上下10M之间波动,可能受网络或整体存储环境影响。
- 对云存储,那个fdatasync参数加与不加差别不大;但对本地硬盘,则影响比较大。
推荐一篇文章:如何测试云硬盘
https://www.ustack.com/blog/how-benchmark-ebs
简单的用 dd 去测结果不一定完全准确哦 🙂
好的,有空拜读。