发布:凯铧互联小编
本文描述了块存储性能的重要指标、不同块存储类型的性能、性能测试方式和结果解读。
衡量块存储产品的性能指标主要包括:IOPS、吞吐量和访问时延。
一、IOPSIOPS是Input/Output Operations per Second,即每秒能处理的I/O个数,用于表示块存储处理读写(输出/输入)的能力。如果要部署事务密集型应用,需要关注IOPS性能。
最普遍的IOPS性能指标是顺序操作和随机操作,如下表所示。
IOPS性能指标 | 描述 | |
---|---|---|
总 IOPS | 每秒执行的I/O操作总次数。 | |
随机读IOPS | 每秒执行的随机读I/O操作的平均次数 | 对磁盘存储位置的不连续访问 |
随机写IOPS | 每秒执行的随机写I/O操作的平均次数 | |
顺序写IOPS | 每秒执行的顺序读I/O操作的平均次数 | 对磁盘存储位置的连续访问 |
顺序写IOPS | 每秒执行的顺序写I/O操作的平均次数 |
二、吞吐量
吞吐量是指单位时间内可以成功传输的数据数量。
如果要部署大量顺序读写的应用,需要关注吞吐量。
三、访问时延访问时延是指块存储处理一个I/O需要的时间。
如果您的应用对时延比较敏感,比如数据库(过高的时延会导致应用报错),建议您使用固态硬盘介质的SSD云盘、SSD共享块存储或本地SSD盘类产品。
如果您的应用更偏重存储吞吐能力,对时延不太敏感,比如Hadoop离线计算等吞吐密集型应用,建议您使用本地HDD盘类产品,如d1或d1ne大数据型实例。
以下是不同块存储产品的性能对比表。
云盘性能
三种云盘的性能对比如下表所示
参数 | SSD云盘 | 高效云盘 | 普通云盘 |
---|---|---|---|
单盘最大容量 | 32768 GiB | 32768 GiB | 2000 GiB |
最大IOPS | 20000* | 3000 | 数百 |
最大吞吐量 | 300 MBps* | 80 MBps | 30−40 MBps |
单盘性能计算公式** | IOPS = min{1200 + 30 * 容量, 20000} | IOPS = min{1000 + 6 * 容量, 3000} | 无 |
吞吐量 = min{80 + 0.5 * 容量, 300} MBps | 吞吐量 = min{50 + 0.1 * 容量, 80} MBps | 无 | |
数据可靠性 | 99.9999999% | 99.9999999% | 99.9999999% |
API名称 | cloud_ssd | cloud_efficiency | cloud |
典型应用场景 |
|
|
|
* SSD云盘的性能因数据块大小而异,数据块越小,吞吐量越小,IOPS越高,如下表所示。只有挂载到I/O优化的实例时,SSD云盘才能获得期望的IOPS性能。挂载到非I/O优化的实例时,SSD云盘无法获得期望的IOPS性能。
数据块大小 | IOPS最大值 | 吞吐量 |
---|---|---|
4 KiB或8 KiB | 约20000 | 很小,远低于300 MBps |
16 KiB | 约17200 | 将近300 MBps |
32 KiB | 约9600 | |
64 KiB | 约4800 |
** 单盘性能计算公式说明:
不同云盘的单路访问时延如下:
增强型SSD云盘性能如下表所示。
参数 | ESSD 云盘 |
---|---|
单盘最大容量 | 32768 GiB |
最大IOPS | 100万 |
最大吞吐量 | 4000 MBps |
单盘性能计算公式* | IOPS = min{100 * 容量 + 1200, 1000000} |
吞吐量 = min{1 * 容量 + 80, 4000} MBps | |
数据可靠性 | 99.9999999% |
* 单盘性能计算公式说明:
基于新一代分布式块存储架构,结合25GE网络和RDMA技术,ESSD云盘可以为您提供单盘高达100万的随机读写能力和低至100 μs的单路访问时延能力。
2种共享块存储的性能对比如下表所示。
参数 | SSD共享块存储 | 高效共享块存储 |
---|---|---|
最大容量 | 单盘:32768 GiB 单个实例:最大128 TiB |
单盘:32768 GiB 单个实例:最大128 TiB |
最大随机读写IOPS* | 30000 | 5000 |
最大顺序读写吞吐量* | 512 MBps | 160 MBps |
单盘性能计算公式** | IOPS = min{40 * 容量, 30000} | IOPS = min{1000 + 6 * 容量, 5000} |
吞吐量 = min{50 + 0.5 * 容量, 512} MBps | 吞吐量 = min{50 + 0.15 * 容量, 160} MBps | |
典型应用场景 | Oracle RAC SQL Server 故障转移集群 服务器高可用 |
服务器高可用架构 开发测试数据库高可用架构 |
* 最大IOPS和吞吐量是在2个或2个以上实例同时压测裸设备能达到的性能数值。
** 单盘性能计算公式说明:
不同共享块存储的单路访问时延如下:
本地存储的性能信息,请参考 本地存储。
性能测试
根据ECS实例的操作系统不同,您可以使用不同的工具测试块存储性能:
本文以Linux实例和fio为例,说明如何使用fio测试块存储性能。在进行测试前,请确保块存储已经4 KiB对齐。
警告:
测试裸盘可以获得真实的块存储盘性能,但直接测试裸盘会破坏文件系统结构,请在测试前提前做好数据备份。建议您只在新购无数据的ECS实例上使用工具测试块存储性能,避免造成数据丢失。
测试随机写IOPS,运行以下命令:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing
测试随机读IOPS,运行以下命令:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing
测试顺序写吞吐量,运行以下命令:
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing
测试顺序读吞吐量,运行以下命令:
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Read_PPS_Testing
下表以测试随机写IOPS的命令为例,说明命令中各种参数的含义。
参数 | 说明 |
---|---|
-direct=1 | 表示测试时忽略I/O缓存,数据直写。 |
-iodepth=128 | 表示使用AIO时,同时发出I/O数的上限为128。 |
-rw=randwrite | 表示测试时的读写策略为随机写(random writes)。作其它测试时可以设置为:
|
-ioengine=libaio | 表示测试方式为libaio(Linux AIO,异步I/O)。应用使用I/O通常有二种方式:同步和异步。同步的I/O一次只能发出一个I/O请求,等待内核完成才返回。这样对于单个线程iodepth总是小于1,但是可以透过多个线程并发执行来解决。通常会用 16−32 根线程同时工作将iodepth塞满。异步则通常使用libaio这样的方式一次提交一批I/O请求,然后等待一批的完成,减少交互的次数,会更有效率。 |
-bs=4k | 表示单次I/O的块文件大小为4k。未指定该参数时的默认大小也是4k。测试IOPS时,建议将bs 设置为一个比较小的值,如本示例中的4k。测试吞吐量时,建议将bs 设置为一个较大的值,如本示例中的1024k。 |
-size=1G | 表示测试文件大小为1G。 |
-numjobs=1 | 表示测试线程数为1。 |
-runtime=1000 | 表示测试时间为1000秒。如果未配置,则持续将前述-size 指定大小的文件,以每次-bs 值为分块大小写完。 |
-group_reporting | 表示测试结果里汇总每个进程的统计信息,而非以不同job汇总展示信息。 |
-filename=iotest | 指定测试文件的名称,比如iotest。测试裸盘可以获得真实的磁盘性能,但直接测试裸盘会破坏文件系统结构,请在测试前提前做好数据备份。 |
-name=Rand_Write_Testing | 表示测试任务名称为Rand_Write_Testing,可以随意设定。 |
以下以一块800 GiB SSD云盘随机读IOPS性能的测试结果为例,说明如何理解fio测试结果。
输出结果中,您主要关注以下这行内容:
read : io=1024.0MB, bw=80505KB/s, iops=20126, runt= 13025msec
表示fio做了1 GiB I/O,速率约为80 MiB/s,总IOPS为20126,运行时间为13秒。由IOPS值可知,该SSD云盘的IOPS性能为 20126,而根据公式计算的数值为:
min{1200+30 * 容量, 20000} = min{1200+30 * 800, 20000} = 20000
测试结果与公式计算结果相近。
为什么选择我们: 北京凯铧互联科技有限公司(简称凯铧互联)由多名前阿里云资深技术专家创立,核心员工来自阿里云、腾讯云等,作为阿里云,腾讯云,百度云,金山云重要的合作伙伴,专注于为企业用户提供云计算及云计算的解决方案。总部设在北京,并在内蒙设有办事处。做为一家综合性方案商,凯铧互联向各行业用户提供基于云计算的各种解决方案。为用户获得优质服务的同时,秉承"专业规划、周到服务"的服务理念,根据用户的实际情况,充分考虑各种网络资源的特点及功效,为用户量身定做一套适合于其实际应用需求的网络应用方案。帮助用户利用互联网的力量展开新的营销方式,并大大缩短了项目实施周期,获得用户的一致好评。
凯铧互联专属服务: 阿里云代理商凯铧互联为每一个用户提供专属网络架构服务,同时还能提供阿里云服务器ECS、阿里云CDN等产品等的专属折扣优惠购买。如果您需要详细的为您的企业选择最适合自己的服务器配置类型,请您联系客服,专业人员为您提供服务,同时还能获得更多的优惠折扣,电话专线:136-5130-9831,QQ:3398234753。
阿里云代理商凯铧互联提供阿里云服务器,云服务器解决方案,万网虚拟主机,阿里云邮箱,云数据库RDS,对象存储OSS,负载均衡,CDN、云盾安全,DDOS高防IP等产品的全国代买服务,直属会员+双重售后服务+更多优惠政策。