体验阿里云SSD云盘+ECS(I/O优化)的性能

阿里云推出SSD云盘+I/O优化的ECS已有一段时间,这个功能优化可以为ECS服务器与SSD云盘提供更好的网络能力。据阿里云官网介绍,SSD云盘最高提供20000次随机读写IOPS、256MB/S吞吐量的存储性能。这里需要解释一下如果想要达到20000次IOPS,需要SSD云盘容量达到667GB以上。下面的文章中会对这个做进一步解释。近期拿到了这款产品的公测机会,下面就让我们一起开启一段体验之旅吧。

首先在订购页面中选择自己所需的配置,由于我是测试体验就先按照最低配置来进行购买(CPU:2核,内存:4GB,SSD云盘:20GB),如下图。

aliyunorder

创建成功之后就可以使用ECS了,通过Google了解到AnvilPro是用来测试SSD硬盘常用的软件,那我就用这款工具来对阿里云的SSD云盘进行测试。目前对于SSD硬盘测试最主要的测试指标就是——IOPS,这个有代表什么意思呢? IOPS的全称是Input/Output Per Second,即每秒的输入输出量(或读写次数),指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。

wmarow-iops-calc

既然有了测试依据,那么我就在服务器上打开AnvilPro软件,分别以C盘1G、E盘4G、E盘16G为测试,得到如下图的测试数据。

301345321181322

301345095099994

301345206815815

这款软件读取部分以Seq 4MB(连续读取)、4K(随意读取,并发1个队列)、4K QD4(随意读取,并发4个队列)、4K QD16(随意读取,并发16个队列)、32K、128K划分;写入部分为Seq 4MB、4K、4K QD4(随意读取,并发4个队列)、4K QD16(随意读取,并发16个队列)。从图中可以看出IOPS与MB/S可以直接进行换算,比如以C盘1G的测试标本,4K读取是1201.75,即每秒可以读取1201个4K文件,即1201*4K/1024 = 4.69MB/S。

通过这几天的学习以及阿里云童鞋的指导,得知目前SSD云盘的性能是跟存储容量有关系,按照官方介绍的计算标准,SSD云盘每1GB空间提供30个IOPS,30GB空间提供900个IOPS,以此类推100GB空间提供3000个IOPS,如果想要达到20000个IOPS,需要667GB。那么根据这个计算标准,我之前购买的配置是按照SSD云盘最小标准——20GB,根据上图所测试出来的IOPS,阿里云的SSD云盘在20GB下的性能已经很不错啦。但是我又真的想体验一下20000个IOPS是什么水准?那么就继续下单购买,分别购买了Windows Server 2012 配置如下:CPU:2核,内存:4GB(I/O优化),数据盘:700G,带宽:1M(峰值)。同时我也购买了相同配置的Ubuntu服务器,测试一下SSD云盘在Linux下的性能。

这次在Windows Server下测试我依旧选择了以上次测试同样的软件——AnvilPro,而没有使用朋友推荐的HD Tune,主要是为了与上次的测试条件达到统一。只不过这次我根据自己的选择进行测试,比如我选择了以Block Size:4K、32K、64K,Queue Depth=16为标准,进行了三组测试,如下图:

Red Hat VirtIO SCSI Disk Device_751GB_TH-R-IO_20150707-2101

Red Hat VirtIO SCSI Disk Device_751GB_TH-R-IO_20150707-2102

Red Hat VirtIO SCSI Disk Device_751GB_TH-R-IO_20150707-2103

然后又测试了随机写入数据的,这次以Block Size:32K、64K,Queue Depth=16为标准进行测试

Red Hat VirtIO SCSI Disk Device_751GB_TH-W-IO_20150707-2103

Red Hat VirtIO SCSI Disk Device_751GB_TH-W-IO_20150707-2104

通过上面的Random Read和Rand Write 结果得出,SSD云盘的性能确实是跟容量大小有关系,我上周做的以最小容量为基准的测试虽然也能反应出SSD云盘的性能,但是要想获取最大性能的SSD云盘还是建议在有条件的情况下购买大容量的SSD云盘。下面看一下在Ubuntu服务器下面的测试结果,在Linux环境下会使用FIO进行测试,只需要通过命令行输入:

fio -direct=1  -iodepth=64  -rw=randwrite  -ioengine=libaio  -bs=16k  -size=10G  -numjobs=1  -runtime=1000  -group_reporting  -name=/data/testfile

FIO_RandomWrite

这段测试的含义是测试随机写,每次写入大小16K,文件大小为10G,ioengine=libaio,运行1000秒(runtime),跳过buffer 下面的测试结束,每秒写速bw=235413KB/s,IOPS=14713。

通过上面的性能测试得到的数据,SSD云盘可以解决随机读取IOPS性能的问题,就如产品介绍那样1GB提供30个IOPS,100GB提供300个IOPS。那么问题来了,如何来选择ECS的配置?下面了解一下目前按量付费的计算公式(以1000元为准)。4核16G的配置可以使用13天,16核16G的配置可以使用9天。剩下的就按照自己的需求来订购配置了。

目前这款产品是适合对数据可靠性要求高的I/O密集型等核心业务系统或者中大型开发测试环境。如果你的业务发展碰到用户访问量大、高并发等问题,那么还是通过这种硬件上的投入来解决问题。因为当你的业务发展遇到这样的情况,说明你的网站或是App等产品是有用户群体和知名度的,所以对于基础设施产品的投入会随着越来越多的增长用户摊薄投入成本。

总之现在的互联网行业,用户体验是每个开发人员和运营者所追求的目标,能为自己的用户带来更好的使用体验是一件幸福的事情。其实这也是云计算厂商所追求的目标,通过为网站开发者提供有针对性、适合各种业务场景的产品来解决我们的问题,让我们开发者聚焦在自己熟悉的领域,关注自己的产品开发,提升产品竞争力,这才是一个有序的发展生态。

posted @ 2015-07-09 16:02  坤坤  阅读(9962)  评论(2编辑  收藏  举报