1. 程式人生 > >阿里雲主機效能評測之硬碟

阿里雲主機效能評測之硬碟

總感覺正在用的息壤VPS主機效能不好,網路也時常性的會出現卡頓。

申請了一臺阿里雲主機,單核1G記憶體,10G資料盤,2M頻寬的配置,先測試下硬碟效能。

硬碟測試 我們用dd命令附帶不同的引數進行測試。

1)命令:dd bs=64k count=4k if=/dev/zero of=test

下面是阿里雲:

dd bs=64k count=4k if=/dev/zero of=test
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 0.317469 seconds, 846 MB/s

下面是息壤VPS的:

dd bs=64k count=4k if=/dev/zero of=test


4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 1.98389 seconds, 135 MB/s

看似磁碟效能是要高出不少。dd預設的方式不包括“同步(sync)”命令。也就是說,dd命令完成前並沒有讓系統真正把檔案寫到磁碟上。所以以上命令只是單純地把這128MB的資料讀到記憶體緩衝當中(寫快取[write cache])。所以你得到的將是一個超級快的速度。因為其實dd給你的只是讀取速度,直到dd完成後系統才開始真正往磁碟上寫資料,但這個速度你是看不到了。所以如果這個速度很快,沒有什麼作用。

再繼續比較:

2)命令:dd bs=64k count=4k if=/dev/zero of=test conv=fdatasync

加入這個引數後,dd命令執行到最後會真正執行一次“同步(sync)”操作,所以這時候你得到的是讀取這128M資料到記憶體並寫入到磁碟上所需的時間,這樣算出來的時間才是比較符合實際使用結果的。

命令:dd bs=64k count=4k if=/dev/zero of=test oflag=dsync

加入這個引數後,dd在執行時每次都會進行同步寫入操作。也就是說,這條命令每次讀取64k後就要先把這64k寫入磁碟,然後再讀取下面這64k,一共重複128次。這可能是最慢的一種方式了,因為基本上沒有用到寫快取(write cache)。

實際執行結果:

阿里雲:

[[email protected]

~]# dd bs=64k count=4k if=/dev/zero of=test conv=fdatasync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 5.35827 seconds, 50.1 MB/s
[[email protected] ~]# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 27.9606 seconds, 9.6 MB/s

息壤VPS:

[[email protected] java]# dd bs=64k count=4k if=/dev/zero of=test conv=fdatasync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 2.07624 seconds, 129 MB/s
[[email protected] java]# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 12.2714 seconds, 21.9 MB/s

在寫入速度上可見阿里雲主機並不見優勢,效能差了一半!這也是許多人提到的問題,可能也是使用雲主機使用叢集的弊端。寫入速度只是在更新網站的時候會有所影響,只要使用者瀏覽的速度快就行了,這個倒不是大問題。