【问题标题】:Low disk performance in Ubuntu VM on AzureAzure 上的 Ubuntu VM 中的磁盘性能低下
【发布时间】:2015-01-14 07:43:02
【问题描述】:

我正在评估 Azure,我创建的 Ubuntu VM 的磁盘性能似乎出乎意料地低。我注意到这一点是因为与我正在使用的另一个 Rackspace VM 相比,数据库导入花费的时间要长得多。而且我不确定是否有任何我错过的重要配置,或者只是我以错误的方式查看磁盘性能。这是我的测试和结果:

标准 A1 虚拟机(1 核,1.75GB 内存,Ubuntu 12.04 LTS)

  • sudo hdparm -tT /dev/sdb

定时缓存读取:2.00 秒内 6892 MB = 3451.31 MB/秒

定时缓冲磁盘读取:3.37 秒内 40 MB = 11.88 MB/秒

  • sudo hdparm -t --direct /dev/sdb

计时 O_DIRECT 磁盘读取:3.74 秒内 46 MB = 12.29 MB/秒

  • sudo dd if=/dev/zero of=/mnt/test bs=8k count=200000; sudo rm -f /mnt/test

已复制 1638400000 字节 (1.6 GB),246.32 秒,6.7 MB/秒

作为比较,我在 Rackspace(4 个 vCPU,1GB 内存,Ubuntu 12.04 LTS)上的其他虚拟机具有以下结果:

  • sudo hdparm -tT /dev/xvda

定时缓存读取:1.99 秒内 5960 MB = 2990.32 MB/秒

定时缓冲磁盘读取:3.05 秒内 200 MB = 65.66 MB/秒

  • sudo hdparm -t --direct /dev/xvda

计时 O_DIRECT 磁盘读取:3.12 秒内 162 MB = 52.00 MB/秒

  • sudo dd if=/dev/zero of=test bs=8k count=200000; sudo rm -f 测试

1638400000 字节 (1.6 GB) 已复制,13.7139 秒,119 MB/秒

虽然 Azure VM 具有更好的缓存读取性能,但它的磁盘读取(缓冲和直接)非常慢,磁盘写入(或复制)更差。由于 Azure 上的 Linux VM 默认没有配置交换文件,我手动创建了一个 5GB 交换文件(在 /dev/sdb 上),但似乎没有帮助。

然后我使用标准 D3 VM(4 核,14GB 内存,Ubuntu 12.04 LTS)在 Azure 上进行了另一轮测试。在 /dev/sdb 上执行上述命令时,性能非常惊人,我猜是因为本地 SSD?但是,当我将附加磁盘附加到该 D3 虚拟机并在新创建的 /dev/sdc 分区 (ext4) 上运行相同的命令时,结果与 A1 实例一样糟糕。

不确定这是否是在 Linux 中测试磁盘性能的最佳方法。但很明显,Azure VM 在还原数据库备份时要慢得多。 Microsoft Azure 支持页面建议我们可以在这里使用“azure”标签提问,所以......欢迎任何 cmets。

【问题讨论】:

  • ServerFault 的好问题(stackoverflow 专门用于编程问题)。当您忙于解决这个问题时,考虑一下您将相同类型的磁盘附加到 D3 和 A1 的事实:Blob-backed vhd。每个 blob 最高可达 500 IOPS。这与 VM 本身无关(除了网络带宽)。另请查找 Azure 高级存储。
  • @David Makogon 谢谢。我现在正在查看高级存储,刚刚注册了预览版。

标签: azure


【解决方案1】:

我删除了之前附加到标准 D3 VM 的磁盘,然后按照相同的过程附加了一个新磁盘。不知何故,新附加的磁盘具有更好的性能,如下所示 标准 D3 虚拟机(4 核,14GB 内存,Ubuntu 12.04 LTS)

  • sudo hdparm -tT /dev/sdc

定时缓存读取:1.99 秒内 13054 MB = 6546.15 MB/秒

定时缓冲磁盘读取:3.01 秒内 68 MB = 22.57 MB/秒

  • sudo hdparm -t --direct /dev/sdc

计时 O_DIRECT 磁盘读取:3.03 秒内 98 MB = 32.35 MB/秒

  • sudo dd if=/dev/zero of=/mnt/test bs=8k count=200000; sudo rm -f /mnt/test

1638400000 字节 (1.6 GB) 已复制,1.5689 秒,1.0 GB/秒

不完全确定为什么。但是我的问题已经不存在了。因此结束这个问题。

【讨论】:

    【解决方案2】:

    D 系列基于 SSD。 A 上的 /mnt 或 /mnt/resource 也将是基于 SSD 的并且是服务器本地的,但不是持久的。云供应商有关于设置条带化或 RAID0(或 10)以提高 IOPS 的指导。对于 Azure,我建议查看专为 MySQL 设计但从磁盘向上覆盖的 this guide

    【讨论】:

    • 感谢您的评论。我按照该指南在我的服务器上设置了 RAID0。改进非常明显。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 2019-11-22
    • 2019-05-17
    • 2017-09-26
    • 2017-11-15
    • 1970-01-01
    • 2018-09-28
    相关资源
    最近更新 更多