我正在评估Azure,看来我创build的Ubuntu VM的磁盘性能出乎意料的低下。 我注意到这一点,因为与我正在使用的另一个Rackspace VM相比,数据库导入耗时更长。 而且我不确定是否有重要的configuration,我错过了,或者只是我看错了磁盘性能。 这是我的testing和结果:
标准A1 VM(1核,1.75GB内存,Ubuntu 12.04 LTS)
定时caching读取:2.00秒中的6892MB = 3451.31MB /秒
定时缓冲磁盘读取:3.37秒中的40 MB = 11.88 MB /秒
定时O_DIRECT磁盘读取:3.74秒中的46 MB = 12.29 MB /秒
1638400000字节(1.6 GB)复制,246.32 s,6.7 MB / s
作为比较,我在Rackspace上的其他虚拟机(4个vCPU,1GB内存,Ubuntu 12.04 LTS)具有以下结果:
定时caching读取:1.99秒中的5960MB = 2990.32MB /秒
定时缓冲磁盘读取:3.05秒中的200 MB = 65.66 MB /秒
定时O_DIRECT磁盘读取:3.12秒中的162 MB = 52.00 MB /秒
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)
定时caching读取:1.99秒中的13054 MB = 6546.15 MB /秒
定时缓冲磁盘读取:3.01秒中的68 MB = 22.57 MB /秒
定时O_DIRECT磁盘读取:3.03秒中的98 MB = 32.35 MB /秒
1638400000字节(1.6 GB)复制,1.5689秒,1.0 GB /秒
不完全确定为什么。 但是我的问题不再存在了。 因此closures这个问题。