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和磁盘限制的较小值。

Azure磁盘的吞吐量测试的更多相关文章

  1. 如何对Azure磁盘性能进行测试

    Azure的云存储一直是Azure比较自豪的东西,想到AWS的LSA后面有若干个9,搞得大家都以为它的存储最优秀,其实不然,Azure存储到现在没有丢过客户1bit的数据,但是Azure不会去说我们的 ...

  2. 使用 PowerShell 管理 Azure 磁盘

    Azure 虚拟机使用磁盘来存储 VM 操作系统.应用程序和数据. 创建 VM 时,请务必选择适用于所需工作负荷的磁盘大小和配置. 本教程介绍如何部署和管理 VM 磁盘. 学习内容: OS 磁盘和临时 ...

  3. 使用 Azure CLI 管理 Azure 磁盘

    Azure 虚拟机使用磁盘来存储 VM 操作系统.应用程序和数据. 创建 VM 时,请务必选择适用于所需工作负荷的磁盘大小和配置. 本教程介绍如何部署和管理 VM 磁盘. 学习内容: OS 磁盘和临时 ...

  4. Azure disk iops的测试

    在Public Cloud中,VM.Storage和Network是IaaS的三大基础.本文将介绍在Azure的VM上测试磁盘IOPS的工具和方法. 一.添加磁盘.初始化磁盘 1.添加磁盘 把相应的信 ...

  5. 使用iozone测试磁盘性能(测试文件读写)

    IOzone是一个文件系统测试基准工具.可以测试不同的操作系统中文件系统的读写性能.可以通过 write, re-write, read, re-read, random read, random w ...

  6. Kafka吞吐量测试案例

    Kafka吞吐量测试案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 领英公司参考连接:https://www.slideshare.net/JiangjieQin/produc ...

  7. RabbitMQ吞吐量测试-PerfTest上

    RabbitMQ吞吐量测试-PerfTest上 PerfTest RabbitMQ有一个基本的吞吐量测试工具PerfTest(文档,源代码和版本),它基于Java客户端,可以配置为模拟基本工作负载.P ...

  8. RFC2544吞吐量测试详细步骤-MiniSMB-HurricaneII软件操作演示

    RFC2544吞吐量测试详细步骤-MiniSMB-HurricaneII软件操作演示 关键词:网络性能测试:RFC2544:吞吐量:吞吐率. RFC2544协议是RFC组织提出的用于评测网络互联设备( ...

  9. RFC3918聚合组播吞吐量测试——网络测试仪实操

    一.简介 1.RFC3918简介 历史 · 在1999年3月成为正式标准 功能 · 评测网络互连设备或网络系统的性能 · 网络设备: 交换机,路由器- 内容 · 定义了一整套测试方法,为不同厂家的设备 ...

随机推荐

  1. php访问mysql工具类

    本文转载自:http://www.cnblogs.com/lida/archive/2011/02/18/1958211.html <?php class mysql { private $db ...

  2. 【VNC】Ubuntu14.04LTS下安装VNC View

    # apt-get install tightvncserver vnc4server gnome-panel gnome-settings-daemon metacity nautilus gnom ...

  3. 黄聪:TinyMCE 4 增强 添加样式、按钮、字体、下拉菜单和弹出式窗口

    我最喜欢 WordPress 3.9 的更新是使用了 TinyMCE 4.0 编辑器.新的 TinyMCE 看起来看起来更整洁(真正匹配WP仪表板),它有一些非常不错的附加功能.我的很多老主题和插件必 ...

  4. 解决python中json模块loads出来的结构都是unicode的问题

    在使用python的json模块对json字串反序列化成python对象的时候出现的字符串都是unicode类型,而不是python内置的str类型.在某种使用场景下用户必须做显式的转换才能正常使用, ...

  5. SparkSQL的解析详解

    SparkSQL继承自Hive的接口,由于hive是基于MapReduce进行计算的,在计算过程中大量的中间数据要落地于磁盘,从而消耗了大量的I/O,降低了运行的效率,从而基于内存运算的SparkSQ ...

  6. DG_Oracle DataGuard作用和概念(概念)

    2014-06-03 Created By BaoXinjian  

  7. GL_GL系列 - 会计期间管理分析(案例)

    2014-07-07 Created By BaoXinjian

  8. JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。

    在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用. 首先右键点我的电脑.打开属性.然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME” ...

  9. .nil? .empty? .blank? .present? in Ruby on Rails

    We get confused when there are many options to choose from. Same is the case when it comes to use an ...

  10. HTTP权威指南之连接管理

    TCP连接世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的, TCP/IP 是全球计算机及网络设备都在使用的一种常用的分组交换网络分层协议集. 客户端应用程序可以打开一条 TCP/IP 连 ...