【发布时间】: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