使用 dd 指令測試磁碟寫入速度

在 Linux 上若要簡單地測試磁碟的寫入速度,一般來說並不需要任何額外的工具,只要用 dd 就可以了:

  • dd if=/dev/zero of=test1.img bs=1G count=1 oflag=dsync

 

前述指令會產生一個 1GB 大小的空白檔案(test1.img)在當前路徑中,並顯示所花費的時間,以及平均的寫入速度。印象中 DR 第一次使用這樣的測試指令,應該是數年前在雲主機商做工程師的時候。那時遇到的一項困擾,是用於建構用戶 VPS 的多部 Linux KVM Hypervisor 伺服器,存在著效能參差不齊的問題。其主要的癥結點,估計是因為公司並未對主機資源是否超賣的定義及量化,有很積極及足夠科學的評估。

 

所構成的結果,是用戶手上的 VPS 效能如何,其實是頗具隨機成分的;而不是單看帳面上選購的規格,因為還取決於該 VPS 實際上會分派到哪一部 Hypervisor 伺服器上。如果是資源使用率較低的伺服器,效能就會好,反之效能就有可能會低於預期。其中特別是關於磁碟 I/O 的部份,即便是一致採用 SSD 組磁碟陣列,但某些伺服器在較高的資源搶佔情形下,用戶 VPS 能夠獲得的寫入速度也可能會下滑至類似 HDD 的水平。

 

以網站建置的實務案例來說,除非有經過特別調校,否則這種效能差異很容易就會反映在 SQL 資料表的寫入速度上。倘若有用戶因此反映效能問題,DR 所採取的作法,便是透過一些簡單的測試,確認有哪些 Hypervisor 的效能狀況,比用戶當前所處的 Hypervisor 還要好,便會協助將 VPS 遷移過去。儘管這是一個既被動又手工的處理流程,但卻是當時現實條件上確實能夠解決用戶問題的辦法。

 

分類: