Azure上的Ubuntu VM中的磁盘性能较低

时间:2015-01-07 05:21:57

标签: azure

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

标准A1 VM(1核,1.75GB内存,Ubuntu 12.04 LTS)

  • sudo hdparm -tT / dev / sdb
  

计时缓存读取:6892 MB,2.00秒= 3451.31 MB /秒

     

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

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

定时O_DIRECT磁盘读取:37毫秒,3.74秒= 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 s,6.7 MB / s

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

  • sudo hdparm -tT / dev / xvda
  

时间缓存读取:5960 MB,1.99秒= 2990.32 MB /秒

     

定时缓冲磁盘读取:200 MB,3.05秒= 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 test
  

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

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

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

不确定这是否是在Linux中测试磁盘性能的最佳方法。但是,恢复数据库备份时Azure VM的速度要慢得多。 Microsoft Azure支持页面建议我们可以在此处使用“azure”标记提出问题,因此...欢迎任何评论。

2 个答案:

答案 0 :(得分:1)

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

  • sudo hdparm -tT / dev / sdc
  

时间缓存读取:13054 MB,1.99秒= 6546.15 MB /秒

     

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

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

定时O_DIRECT磁盘读取:98 MB,3.03秒= 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 s,1.0 GB / s

不完全确定原因。但我的问题不再存在。因此关闭这个问题。

答案 1 :(得分:0)

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