![](https://csdnimg.cn/release/download_crawler_static/86352268/bg1.jpg)
随着越来越多的用户将生产系统迁移到 Azure 平台的虚拟机服务中,Azure 虚拟机的性能
愈发被关注。传统的数据中心中,我们通常使用 CPU,内存,存储和网络的性能来衡量生
产压力。特别是对于 IO 密集型工作负荷,比如虚拟机内部运行的 SQL 服务,存储系统的
吞吐容量,往往成为生产系统的瓶颈所在。
Azure 提供了标准存储和高级存储两种存储服务。针对于生产环境中的 IO 密集型负荷,我
们推荐使用高级存储。标准存储仅推荐在开发测试环境中使用。针对于具体的高级存储的
介绍,以及虚拟机存储的最佳实践等信息,建议完成以下阅读:
� 高级存储简介:https://www.azure.cn/documentation/articles/storage-premium-
storage/
� Azure 虚拟运行 SQL 服务的最佳实践(英文):https://azure.microsoft.com/en-
us/documentation/articles/virtual-machines-windows-sql-performance/
� 在 SQL 虚拟机中使用 Azure 高级存储(英文):https://azure.microsoft.com/en-
us/documentation/articles/virtual-machines-windows-classic-sql-server-premium-
storage/
然而在现实环境中,由于种种条件所限,很多用户暂时无法使用高级存储来达到最佳
的存储性能。本文的目的在于帮助目前仍然使用标准存储的用户如何准确理解虚拟机
的存储性能,从而在发生存储性能问题时快速有效的从支持部门得到帮助。
首先,由于虚拟机运行在 Azure 平台,我们需要了解 Azure 标准存储的一些基本性能
指标,https://www.azure.cn/documentation/articles/storage-scalability-targets:
� 单个标准存储帐户总请求率上限为 20,000 IOPS,所有虚拟机磁盘的 IOPS 总数
不应超过此限制。
� 标准层虚拟机的单个磁盘 IOPS 上限约为 500。
� 单个标准存储帐户中用于生产应用的磁盘不应超过 40 个
其次,针对于虚拟机操作内部,不同的应用也有不同的磁盘系统优化方案。例如,对
于 Windows 平台,我们通常使用 Storage Space 来尽可能分散 IO 请求到不同的硬件设
备来提升存储带宽:
� 使用虚拟机允许的最大磁盘数和最大磁盘容量构建存储空间
� 使用合理的 interleave 避免 Split IO
� 根据实际生产的单个 IO 数据大小规划文件系统簇的大小,例如 SQL 服务,建
议使用 64K 的簇