Azure上Ubuntu虚拟机的磁盘性能低下

我正在评估Azure,看来我创build的Ubuntu VM的磁盘性能出乎意料的低下。 我注意到这一点,因为与我正在使用的另一个Rackspace VM相比,数据库导入耗时更长。 而且我不确定是否有重要的configuration,我错过了,或者只是我看错了磁盘性能。 这是我的testing和结果:

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

  • sudo hdparm -tT / dev / sdb

定时caching读取:2.00秒中的6892MB = 3451.31MB /秒

定时缓冲磁盘读取: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 s,6.7 MB / s

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

  • sudo hdparm -tT / dev / xvda

定时caching读取:1.99秒中的5960MB = 2990.32MB /秒

定时缓冲磁盘读取: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 -ftesting

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

尽pipeAzure虚拟机具有更好的caching读取性能,但其磁盘读取(包括caching和直接读取)都非常慢,并且磁盘写入(或复制)方式更糟糕。 由于Azure上的Linux虚拟机没有默认configuration交换文件,我手动创build了一个5GB的交换文件(在/ dev / sdb上),但似乎没有帮助。

然后,我使用Standard D3 VM(4核,14GB内存,Ubuntu 12.04 LTS)在Azure上进行了更多testing。 在/ dev / sdb上执行上面的命令时,性能是惊人的,我猜是因为本地SSD? 但是,当我将附加磁盘附加到D3虚拟机上并在新创build的/ dev / sdc分区(ext4)上运行相同的命令时,结果与A1实例一样差。

不知道这是否是在Linux中testing磁盘性能的最佳方法。 但是,在恢复数据库备份时,Azure虚拟机的速度要慢得多。 微软Azure支持页面build议我们可以在这里用“azure”标签提问,所以…欢迎任何评论。

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

  • sudo hdparm -tT / dev / sdc

定时caching读取: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 /秒

不完全确定为什么。 但是我的问题不再存在了。 因此closures这个问题。