本月初,阿里云发布了全球首个100万IOPS的云盘—ESSD,号称单盘IOPS比上一代产品提速了50倍之多,是阿里云迄今为止性能最强的企业级块存储服务。
100万IOPS,看起来很梦幻,AWS家SSD云盘标称IOPS也不过3万2,阿里云的ESSD真有这么强么?是骡子是马,拉出来测测才知道。
为此,笔者选取了几家主流云厂商的云盘产品,包括AWS、Azure、腾讯云和华为云等,购买各家速度最快的SSD云盘型号和最低容量(容量和性能程线性关系,所以在容量选择上,分别选取了能发挥云盘最大性能的最低容量,比如100万IOPS对应需要10TB。),用厂商推荐的标准开源软件FIO进行测试,各家最终的成绩如何,跑分来说话:
5家主流云厂商SSD云盘FIO测试 阿里云高出第二名30倍
评测工具:FIO ,FIO是测试IOPS的非常好的工具,也是各大云厂商推荐的标准开源软件,用来对存储设备进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。本次测试采用libaio异步I/O引擎,通过加大队列深度、提高并发的方式来压测出各家SSD云盘的最高性能。
阿里云官方宣称ESSD云盘比上一代SSD云盘IOPS提升了50倍,吞吐上限提升了14倍高达4000MBps,单路时延缩短80%,为100微秒。
我们申请了一块容量为10TB的ESSD 云盘,运行FIO(4K数据块,高并发随机写)后成绩如下:
作为对比,我们在AWS的io1云盘上运行FIO进行压测,最高IOPS测试结果如下
腾讯云:
模拟真实业务场景 PostgreSQL数据库写入提速26倍
跑分高还要在业务上实践才能发挥出价值。不难发现,ESSD云盘主要适合用于IO密集型应用,比如OLTP下的关系型数据库,或者NoSQL数据库等。这类应用有个共性的特点就是对存储IO的要求比较高,同时对时延又比较敏感,特别是在电商、支付、交易等行业和场景中,实时性要求特别强。
基于这种特性,我们选择PostgreSQL这一款近几年大热的开源数据库,模拟面向企业复杂SQL处理的OLTP在线事务处理场景,来进行标准化测试,同时我们选取阿里云上一代SSD云盘作为对比参考,看性能有多少提升。
测试用例一:TPC-B模型测试
测试目的:TPC-B 模型(measures throughput in terms of how many transactions per second a system can perform ),主要是为了模拟真实的数据库事务操作场景下,测试一秒可以处理的事务个数。
测试工具:pgbench
测试方法:pgbench -M prepared -n -r -P 1 -c 64 -j 64 -T 600
测试规格:
– ecs.g5.8xlarge 32C/128G + 2TB SSD云盘
– ecs.g5se.8xlarge 32C/128G + 2TB ESSD云盘
测试结果对比:
测试用例二:不含索引多表批量写入
测试目的:模拟一个非常典型的测试TP或AP场景,表示了数据实时灌入场景的能力。
测试工具:pgbench
测试方法:pgbench -M prepared -n -r -f ./test.sql -P 5 -c 56 -j 56 -T 300 (unlogged ,不带xlog 锁)
测试规格:
– ecs.g5.8xlarge 32核128G内存,SSD云盘为2TB
ecs.g5se.8xlarge 存储增强型32核128G内存,ESSD云盘为2TB
测试结果对比:
从PostgreSQL下的2个典型业务场景测试的结果来看,阿里云的ESSD云盘的确能给实际业务带来数倍乃至数十倍的性能提升。
价格方面,阿里云ESSD云盘保持了与原来SSD云盘相同的价格水平,依旧是每GB月使用成本1元钱(中国站大陆地域定价)。这样定价方式略显“激进”,但从历次降价来看,阿里云的普惠科技理念还是诚意满满的,希望国内其他云厂商也能跟进,让我们享受到更大的实惠。