qq591577286 发表于 2017-6-30 09:01:09

Azure磁盘的吞吐量测试

  Azure的高级存储具有吞吐量大,延迟低的特点,非常适合时间关键型的应用程序(如SQL Server, Oracle, Redis等)。
  但高级存储同时具有价格高的特点,用户往往对其实际的性能数据较为关注。
  本文将实际测试Azure的标准存储和高级存储的吞吐量情况并对测试结果进行分析
  开始测试前,先解释几个概念:
  延迟是指磁盘检索请求的信息并将其发送回应用程序所花的时间。
  IOPS 是指应用程序在一秒内发送到存储磁盘的请求数。
  吞吐量或带宽是指应用程序在一秒内从磁盘读取或写入的数据量。
  吞吐量和 IOPS 之间存在一个关系,如以下公式所示:

  如果你使用的应用程序允许你更改 IO Size,则可使用以下这条法则来调整性能:

[*]通过降低 IO Size来提高 IOPS。例如,对 OLTP 应用程序使用 8 KB 的 IO Size。
[*]通过提高 IO Size来提高带宽/吞吐量。例如,对数据仓库应用程序使用 1024 KB 的 IO Szie。
  一个磁盘的最大IOPS是在其IO Size最小时(一般为8KB)测出的,反之,其最大吞吐量是在IO Size最大时(一般为1024KB)测出来的。
  开展测试
  1. 虚拟机情况:Standard DS3

     
  2. 添加128G的标准存储:

  3. 添加512G的高级存储:

  4.使用hdparm对以上两种存储进行吞吐量测试:

  (/dev/sdc为标准存储,/dev/sdd为高级存储)
  5. 测试结论:
  从以上测试,我们可以看到Azure标准存储的吞吐量达到63.23MB/s,超过其设定的吞吐量阈值(60MB/s)
  但高级存储的吞吐量为125.12MB/s,离其设定的吞吐量阈值(150MB/s)有一定的距离
  6. 测试结果分析:
  从标准存储的测试结果来看,hdparm是能够测试出存储的最大吞吐量的,因此不存在测试工具的问题。
  那么为什么最大吞吐量为150MB/s的高级存储,其测试结果仅为125.12MB/s 呢? 哪里出问题了?
  原来磁盘的吞吐量测试不仅受到磁盘本身性能的影响,也受到虚拟机的影响。当虚拟机性能成为瓶颈时,
  磁盘的最大性能也无法发挥出来。
  根据Azure虚拟机大小的官方说明,Standard DS3的虚拟机支持的最大吞吐量为128MB/s。
  因此我们的测试结果125.12MB/s是合理的,体现的是Standard DS3 虚拟机的最大吞吐量。
  7. 验证
  为了更进一步验证,我创建了一台Standard DS4的虚拟机,其最大吞吐量高达256MB/s

  添加一样的最大吞吐量为150MB/s的高级存储


  此时测试结果显示,高级存储的最大吞吐量为147.50MB/s。虚拟机不再成为性能的瓶颈

  8. 总结
  存储吞吐量的测试结果取决于VM和磁盘限制的较小值。
页: [1]
查看完整版本: Azure磁盘的吞吐量测试