测试工具iometer, iozone, bonnie++
iometer,iozone, bonnie++
IOMeter是用來做塊級存儲測試IO性能的工具,比較適合做SAN、DAS存儲的測試,卻不適合做針對NAS或者文件系統(tǒng)的測試。雖然它可以運(yùn)行在文件系統(tǒng)之上,但是其方式是在文件系統(tǒng)中創(chuàng)建一個(gè)大的文件,然后再往這個(gè)大文件中讀寫塊,這個(gè)模擬過程是不能完全反映文件系統(tǒng)的特性的。所以大部分對文件系統(tǒng)(包括NAS)的測試 工具一般選用IOZone、Bonnie++等。
?
Iometer
Iometer是一個(gè)測試簡單系統(tǒng)和集群系統(tǒng)下的IO子系統(tǒng)性能的工具;其中dynamometer起到引擎的作用(也就是負(fù)載生成器),iometer經(jīng)常被當(dāng)作測量工具,其實(shí)它也是一個(gè)負(fù)載生成器workload?generator,通過配置可以將iometer仿真為任意程序或benchmark下的磁盤IO負(fù)載或網(wǎng)絡(luò)IO負(fù)載,或用于生成合成IO負(fù)載。
IOmeter用于以下幾個(gè)方面:
1、Performance?of?disk?and?network?controllers.//磁盤和網(wǎng)絡(luò)控制器的性能;
2、Bandwidth?and?latency?capabilities?of?buses.//總線帶寬和延遲;
3、Network?throughput?to?attached?drives.??????//到附聯(lián)驅(qū)動器的網(wǎng)絡(luò)帶寬;
4、Shared?bus?performance.?????????????????????//共享的總線性能;
5、System-level?hard?drive?performance.????????//系統(tǒng)級硬盤驅(qū)動器性能;??
6、System-level?network?performance.???????????//系統(tǒng)級網(wǎng)絡(luò)性能;
測試時(shí)分兩種情況:單機(jī)環(huán)境和網(wǎng)絡(luò)環(huán)境;
在單機(jī)環(huán)境下,運(yùn)行iometer.exe,它自動運(yùn)行dynamo,在iometer控制界面里可設(shè)置測試參數(shù);
在網(wǎng)絡(luò)環(huán)境下,也有幾種測試方式,最簡單也是最常用的方式是采用網(wǎng)絡(luò)映射方式將遠(yuǎn)程目錄映射成本機(jī)的一個(gè)盤符,然后按照單機(jī)情況進(jìn)行測試;
iozone
主頁地址: http://www.iozone.org
通過如下操作測試文件IO性能:read,?write,?re-read,?re-write,?read?backwards,?read?strided,?fread,fwrite,?random?read,?pread,?mmap,?aio_read,?aio_write.
iozone具有如下特性:
ANSII?C?source?
POSIX?async?I/O?
Mmap()?file?I/O?
Normal?file?I/O?
Single?stream?measurement?
Multiple?stream?measurement?
Distributed?fileserver?measurements?(Cluster)?//這個(gè)特性很實(shí)用?
POSIX?pthreads?
Multi-process?measurement?
Excel?importable?output?for?graph?generation??//一個(gè)有用的特性
Latency?plots?
64bit?compatible?source?
Large?file?compatible?
Stonewalling?in?throughput?tests?to?eliminate?straggler?effects?
Processor?cache?size?configurable?
Selectable?measurements?with?fsync,?O_SYNC?//bonnie++最近版本已經(jīng)加入fsync這一阻塞機(jī)制了,保證測試結(jié)果的真實(shí)性(有沒有同步并刷新到磁盤文件中,性能差別很大)
Builds?for:?AIX,?BSDI,?HP-UX,?IRIX,?FreeBSD,?Linux,?OpenBSD,?NetBSD,?OSFV3,?OSFV4,?OSFV5,?SCO?OpenServer,?Solaris,?Windows95/98/NT???????//支持的平臺真是多。
安裝及測試過程如下:
解壓:tar?xvf?iozone3_237.tar
進(jìn)入src/current目錄;
敲入?make?linux;??????????//linux表示目標(biāo)平臺;
編譯生成目標(biāo)文件iozone
進(jìn)行測試:比如?iozone?-a;//所有參數(shù)都是缺省的,并完成所有的文件操作;
iozone?-s15m?-i0?-i1?-t50:其含義如下:-s15m(文件的大小為15MB);-i0(寫/重寫操作);-i1(讀/重讀操作);
-t50(工作在throughput模式,并且線程數(shù)為50)
當(dāng)然還有-u?就是工作在CPU利用率模式了,具體細(xì)節(jié)參考IOzone_msword_98.pdf。
bonnie++
http://www.textuality.com/bonnie/
bonnie++勝在簡單,不過準(zhǔn)確性稍差
在編譯過程中,如果遇到以下錯(cuò)誤,可能是因?yàn)槟銢]有設(shè)置正確的環(huán)境變量,設(shè)置環(huán)境變量后繼續(xù)編譯,一般可以成功
#?export?LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
#?./configure
編譯完成之后會生成bonnie++,可以用來測試了.
bonnie++[-d?scratch-dir]?測試目錄
????????[-s?size(Mb)[:chunk-size(b)]]文件大小:塊大小??默認(rèn)大小:300M:8K?????????????
????????[-n?number-to-stat[:max-size[:min-size][:num-directories]]]文件創(chuàng)建測試的文件數(shù)n*1024,最大文件大小,最小文件大小,目錄數(shù),max=-1:hard?link,-2:soft?link
????????[-m?machine-name]機(jī)器名,僅用于顯示
????????[-r?ram-size-in-Mb]機(jī)器內(nèi)存大小
????????[-x?number-of-tests]?test數(shù)量
????????[-u?uid-to-use:gid-to-use]?測試所用的用戶名:組名
????????[-g?gid-to-use]
????????[-q]安靜模式
????????[-f]快速模式,不進(jìn)行單字符IO測試
????????[-b]不使用寫緩存
????????[-p?processes?|?-y]?bonnie++進(jìn)程數(shù),使用信號量同步多個(gè)進(jìn)程
????[-y]?每個(gè)測試開始之前等待信號量
測試實(shí)例:
bonnie++??-s?40?-r?1?-n?0?-u?0?-f>>bonnietest??(生成的文件名)
bonnie++?-m?go?–d?/tmp?–s?30:512?–n?1?–r?2?–x?2?–u?0>>test
結(jié)果處理:
測試時(shí),將測試結(jié)果重定向到文件,得到的文件內(nèi)容如上所示
結(jié)果可以直接導(dǎo)入excel(新建一個(gè)文件,然后是菜單中的數(shù)據(jù)->導(dǎo)入外部數(shù)據(jù))。得到結(jié)果中會有+++++的內(nèi)容
+++++的含義:?當(dāng)所用時(shí)間小于1s的時(shí)候,結(jié)果不準(zhǔn)確,所以不給出
結(jié)果項(xiàng)解析:
Sequential?Output(順序?qū)懭?/span>)?
per?char utc(),每次一個(gè)字符,順序?qū)懭?#xff0c;完成整個(gè)文件?
The?CPU?overhead?here?is?that?required?to?do?the?stdio?code?plus?the?OS?file?space?allocation.
block:每次一個(gè)塊,順序?qū)懭?#xff0c;完成整個(gè)文件,?
The?CPU?overhead?should?be?just?the?OS?file?space?allocation.
rewrite:每次讀出一個(gè)塊,修改其中一個(gè)字節(jié),然后寫回?
this?should?test?the?effectiveness?of?the?filesystem?cache?and?the?speed?of?data?transfer.
Sequential?Input(順序讀出)
per?char:get(),每次一個(gè)字符,順序讀出,完成整個(gè)文件?
This?should?exercise?only?stdio?and?sequential?input.?
block:每次一個(gè)塊,順序讀出,完成整個(gè)文件?
This?should?be?a?very?pure?test?of?sequential?input?performance.?
Random?Seeks(隨機(jī)尋道):
3個(gè)seeks進(jìn)程,8K個(gè)隨機(jī)尋道操作,每次都是整塊讀出,%10得情況,修改一個(gè)字節(jié),然后寫回
Sequential?Create?(建立文件時(shí),是真正將文件寫入磁盤的)
create
read(stat)?順序遍歷所有文件:操作:讀取文件屬性,如果文件大小不為0,還要對文件內(nèi)容進(jìn)行讀取,
delete??順序刪除所有文件
Random?Create
create
read(stat)?按隨機(jī)順序遍歷文件,文檔中說這一步不會遍歷所有文件,但是代碼里邊反應(yīng)的情況好像不是這樣
delete?按隨機(jī)順序刪除所有文件
轉(zhuǎn)載于:https://blog.51cto.com/liyuh/747736
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的测试工具iometer, iozone, bonnie++的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于冬樱花的句子
- 下一篇: 外梯度—lhMorpGradientOu