开始测试前,我先解释两个概念:
-
IOPS 是指应用程序在一秒内发送到存储磁盘的请求数。
-
Throughput(吞吐量或带宽)是指应用程序在一秒内从磁盘读取或写入的数据量。
吞吐量和 IOPS 之间存在一个关系,如以下公式所示:
因为每块磁盘的最大吞吐量是有限定的,当IO Size最小(一般8KB)的时候,磁盘的IOPS最大。当IO Size最大(一般1024KB)的时候,可以测出磁盘的最大吞吐量。
云计算的存储大都是网络存储,这一点和本地存储是有区别的。在测试云存储的时候,除了云存储自身的性能以外,还需要考虑其他因素对测试结果可能施加的影响。
本文以微软Azure的标准存储和高级存储为例,探讨一下云存储测试时需要注意的事项。
1. 首先找一台Azure 虚拟机,这里我选择DS3类型的
2. 给它添加一块标准存储,这里可以看到它的吞吐量是60MB/S
3. 再给它添加一块高级存储,它的吞吐量限制是150MB/S
4. 接下来,我将使用吞吐量测试工具hdparm对以上两种存储进行吞吐量测试:
5. 根据测试结果,标准存储的吞吐量达到了预设的60MB/S,但是吞吐量为150MB/S的高级存储,其测试结果却只有125.12MB/S。
原来根据Azure虚拟机规格的官方说明,Standard DS3的虚拟机所支持的最大吞吐量为128MB/s,换句话说,当我们使用DS3的虚拟机来测试任意云存储的时候,理论上它的吞吐量不会超过128MB/S。本实验中,如果我们把虚拟机的规格更改为DS4(最大吞吐量为256MB/S),则此块高级存储的吞吐量测试将能达到预设的150MB/S。
6. 总结:云存储的吞吐量测试取决于虚拟机和磁盘限制的较小值,这一点在做性能测试的时候尤其需要注意。
上云了 | 云计算培训、解决方案提供商
网址:www.shangyunle.cn
公众号:可信云计算