[Linux-文件系統(tǒng)測試] -- Bonnie++測試

簡述:
Bonnie++是一個硬盤和文件系統(tǒng)的基準(zhǔn)性能測試工具,它通過一系列的簡單測試來生成硬盤和文件系統(tǒng)的性能參數(shù)。主要對三個方面做基準(zhǔn)測試:數(shù)據(jù)讀、寫速度,每秒可以完成的磁盤尋道次數(shù)和每秒可以完成的文件元數(shù)據(jù)操作次數(shù)。(說明: Bonnie不能支持>2G的文件,因此Russell Coker (russell@coker.com.au) 開發(fā)了Bonnie++)

Bonnie++的編譯與安裝:
下載Bonnie++測試工具(最新的版本是:bonnie++-1.03e) :
http://www.coker.com.au/bonnie++/
下面以在ubuntu16.04操作系統(tǒng)為例:
$ tar zxvf bonnie++-1.03e.tgz
$ cd bonnie++-1.03e
$ ./configure
$ make && make install
安裝完成以后會在/usr/local/sbin/目錄中生成兩個可執(zhí)行文件,bonnie++(主測試程序)和zcav(裸盤吞吐量測試程序);同時也會在/usr/local/bin目錄下生成兩個可執(zhí)行文件,用于生成可讀性強(qiáng)的測試報(bào)告,它們是bon_csv2html和bon_csv2txt。

Bonnie++測試選項(xiàng)說明:
成功安裝bonnie++后,查看bonnie++的測試參數(shù)
$ bonnie++ help
usage: bonnie++ [-d scratch-dir] [-s size(MiB)[:chunk-size(b)]]
[-n number-to-stat[:max-size[:min-size][:num-directories]]]
[-m machine-name]
[-r ram-size-in-MiB]
[-x number-of-tests] [-u uid-to-use:gid-to-use] [-g gid-to-use]
[-q] [-f] [-b] [-D] [-p processes | -y]
Version: 1.03e
-d : scratch-dir 用于測試的目錄,即測試目標(biāo)位置;
-s : size(MiB) 用于測試IO性能的文件的大小;如果指定的文件大小大于1G,bonnie++會將其分為多個大小為1G的文件;如果你沒有加 -s這個option,系統(tǒng)會默認(rèn)使用2倍內(nèi)存大小的文件,比如我的內(nèi)存是2G,那么bonnie會使用4G的文件來測試性能,原因在于減少緩存的影響
-n : ?
-m : 測試目標(biāo)主機(jī)的主機(jī)名,僅用于顯示測試結(jié)果時的主機(jī)標(biāo)識;
-r : 指定測試程度使用的內(nèi)存大??;bonnie++一般要求指定的測試文件的大小至少為物理內(nèi)存的2倍;如果測試時指定的文件過小,則可以通過指定所使用的物理內(nèi)存大小來滯此條件;
-x : 用于指定同時運(yùn)行的測試數(shù)目;
-u : 測試程序運(yùn)行時關(guān)聯(lián)的uid,如果以root用戶的身份做測試,則此項(xiàng)必須明確指定。
-g : 選項(xiàng)則用于指定gid;
-q : 靜默模式;
-f : 快速模式,此種模式不進(jìn)行IO測試;
-b :
-D : 直接IO測試,用于測試大規(guī)模IO請求時的性能;open的時候,帶上O_DIRECT標(biāo)志,對應(yīng)的代碼邏輯在bon_io.cpp;
-p :

Bonnie++測試舉例:
$ bonnie++ -u <user_name> ------ 直接用默認(rèn)參數(shù)值
例 1: bonnie++ -u root
輸出如下結(jié)果:
Using uid:1000, gid:1000.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.03e ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
yzh-desktop 31G 106862 68 103016 3 39518 2 110741 66 106129 2 206.5 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
yzh-desktop,31G,106862,68,103016,3,39518,2,110741,66,106129,2,206.5,0,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++
用bon_csv2html工具將最后一行的結(jié)果轉(zhuǎn)化為HTML格式輸出:
$ echo yzh-desktop,31G,106862,68,103016,3,39518,2,110741,66,106129,2,206.5,0,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ | /usr/local/bin/bon_csv2html >>bon_result.html

bon_result.png

說明:
1、測試結(jié)果中顯示形如的“++++”的符號表示此項(xiàng)測試時間小于500ms,所以被視作不準(zhǔn)確結(jié)果不予顯示;
2、每項(xiàng)測試都會顯示兩個結(jié)果,其中的%CP表示此項(xiàng)測試的CPU占用率;
Sequential Output下的 Per Char是值用putc方式寫,毫無疑問,因?yàn)閏ache的line總是大于1字節(jié)的,所以不停的騷擾CPU執(zhí)行putc,看到cpu使用率是68%.寫的速度是106MB/s
Sequential Output是按照block去寫的,明顯CPU使用率就下來了,速度也上去了,寫的速度是103MB/s。
Sequential Input下的Per Char是指用getc的方式讀文件,速度是110MB/s,CPU使用率是66%。
Sequential Input下的block是指按照block去讀文件,速度是106MB/s,CPU使用率是2%。

帶具體參數(shù)值進(jìn)行測試
例2 :bonnie++ -d <test_path> -u <user_name> -s <size> -m <host_name> -r <mem_size> -g <gid>
$ bonnie++ -d /home/yzh/images/test -u yzh -m yzh-desktop -r 31720 -g 1000
說明 :如果指定的文件大小大于1G,bonnie++會將其分為多個大小為1G的文件;如果你沒有加 -s這個option,系統(tǒng)會默認(rèn)使用2倍內(nèi)存大小的文件,比如我的內(nèi)存是16G,那么bonnie會使用32G的文件來測試性能 。
測試結(jié)果如下:


bon_result2.png

Bonnie++源代碼結(jié)構(gòu) :
bonnie++.cpp ------ 測試的入口程序
readme.html ------ Bonnie++測試工具的說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容