Thursday, September 12, 2013

Bonnie++使用方法

Bonnie++是Linux底下可以用來測試磁碟效能的工具.
它是建立檔案, 所以測試的是檔案系統那一層的效能, 不等於block device的效能.
這篇比較像是mapnage的一點補充, 加上我的一些心得
所以有其他沒提到的, 請去參考manpage :)

安裝的話, 最簡單的方法是在Redhat系列上安裝EPEL套件庫, 然後直接yum上.
Debian/Ubuntu相信apt裡面就有吧!

用法就這樣:
bonnie++ -d [讀寫測試目錄位置] -s [大檔讀寫測試的測試檔大小] -r [記憶體量] -n [檔案建立測試的數量:檔案大小上限:檔案大小下限:目錄建立數量:區塊大小] -u [執行測試的身分] -m [註解] -f (是否跳過逐字元讀寫測試)

其實不難, 但是有一些細節在manpage上沒寫到.

-s 參數的尺寸是可以用m跟g寫的. 目前我試到最小是512MB.
這裡的尺寸寫0, 或是不寫-s的話, 會跳過大檔案測試.
預設好像是4GB...

-r 是限制使用的RAM大小.
由於RAM會當作讀取cache的關係, 大檔測試的size建議要在RAM size的兩倍以上, 但有時候你的RAM太大 (笑) 會讓測試跑很久.
這時可以用-r手動設置RAM大小, 值小於-s 參數的一半, 就可以執行. 不過當然就會有高估讀寫數據的風險.
如果不做-s, 就不需要寫-r.

-n 這個參數是Bonnie++真正有趣的地方.
我們常常會遇到一個問題, 就是要如何模擬真正的使用情況中, 檔案大小不一的情形?
用-n參數就可以達到.
首先測試檔的數量是以k為單位, 所以如果這裡寫1, 其實是1024個檔案. 不寫的話是16k.
後面的上下限就是好玩的地方, 這裡的單位可以用k或是m.
所以如果這樣寫:
-n 4:100k
那就是說建立4k個檔案, 上限100KB
下限被省略了就是0, Bonnie++會在這個上下限之間隨機決定檔案的大小. 當然我也可以把上下限設成一樣, 就只會產生一種大小的檔案.
上限省略的話就是0... 也就是說如果只寫-n, 就是產生16k個大小為0的檔案.
把數量設為0的話, 或是不寫-n, 就會跳過建檔測試.
要注意的是, 這項測試的結果是以 "檔案數量/秒" 來呈現, 所以你如果設了檔案大小, 要乘上檔案大小的平均值, 才能換算成一般MB/s的速度. 不要弄混了!

-u 是指定要用哪個user身分去建檔, 搭配測試目錄的權限使用.

-m 就註解啦, 可以讓你為這組測試取個名子, 會出現在結果中.

-f 加上這參數會跳過逐字元讀寫測試
如果這項測試對你沒意義, 又想加快測試過程的話, 就寫上去吧!

No comments: