Iozone 使用技巧

分類:IT技術 時間:2017-03-06

       最近可能要測試一下ext3和ext4文件系統,以前記得有這麽一個工具,沒怎麽深入用過,現在打算瞧瞧,也算前期的準備工作吧。

       iozone是一個文件系統的benchmark工具,可以測試不同的操作系統中文件系統的讀寫性能。 可以測試 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬盤的性能。

      運行規則:

            如果你希望得到對平臺進行的一系列測試的精確結果,你應該確定測試的最大文件的大小應該大於 buffer cache,如果你不知道Buffer cache有多大,或者buffer cache是動態變化的,那麽最大文件的大小要大於平臺總共的物理內存。

          一般情況下你應該看到三或四種狀態:

         文件大小剛好適合進程緩存(processor cache)

         文件大小剛好適合buffer cache

         文件大小大於buffer cache

         你可能看到另外的狀態,如果平臺有primary and secondary processor caches,如果你看到的狀態少於三個,那麽可能你的最大文件太小了,iozone默認的最大文件大小是512M,這對於一般系統是足夠大的,但是對於一些大的系統就需要用-g選項增加最大文件的大小。

       測試類型解釋:

       write 

      測試寫一個新文件的性能,當寫一個新文件時不僅需要存儲數據本身,還需要存儲定位這些數據的信息(類似inode節點表吧-個人理解),這樣的性能比寫入一個已有的文件性能要低。

       re-write

       數據寫入一個已經存在的文件,他比寫入新文件的性能要高。

       read

       測試讀取一個已經存在的文件。

       re-read

       測試讀取一個最近才讀取過的文件,他的性能比較高,就像讀取系統緩存的最近讀取過的文件。

      random read

      從一個隨機位置讀取一個文件內容,他的性能受cache大小,磁盤大小,延遲等影響。

      random write

      隨機寫測試

      random mix

      隨機的讀寫一個文件,這個測試只有在吞吐量測試模式下才可以進行

      record rewrite

      測試write和re-write一個文件的特殊區域,就像熱點行為,如果熱點足夠小,並且適合cpu cache 那麽他的性能非常高,如果熱點區域大小大於cpu緩存但是適合TLB,性能會下降一點,如果熱點區域大於cpu緩存和TLB緩存,但是小於系統緩存,則性能會再降一點,如果熱點區域大於系統緩存則性能更差一點

      strided read

      測試讀取一個文件的數據,采取以下方式:在某個點讀取一個固定大小的數據A,然後跳過一段固定大小的數據B,再接著讀取固定大小的數據A,再跳過一段大小的數據B,如此循環下去,大多數系統察覺不到這樣的行為,沒有好的技術手段提高性能。

      參數解釋:

-a 

全自動模式,產生的輸出包括所有的文件測試,record size是4k到16M,file size是64k到512M

-A

提供更加全面的全自動測試但是消耗更多時間。參數–a在文件不小於32MB時將自動停止使用低於64K的塊大小測試。這節省了許多時間,而參數–A則告訴Iozone你不介意等待,即使在文件非常大時也希望進行小塊 的測試。


-b

產生一個二進制文件,兼容execl

-R

產生execl報告,iozone會在標準輸出產生一個execl兼容的報告,這個報告可以導入execl用來建立圖片


-r

可以指定讀寫的塊大小,單位可以是k m g

-s

可以指定測試文件的大小 單位可以是k m g


-f 

指定測試時使用的臨時文件名,在使用umount參數時這個很有用,

-g

設置自動模式可用的最大文件的大小

-n

設置自動模式可用的最小文件的大小

-i

用來指定測試那個項目,可以使用多個-i指定多個項目

-q

設置自動測試的最大塊大小 單位可以是k(Kbytes) m(Mbytes) g(Gbytes)

-y

設置自動測試的最小塊大小,單位同上


-t 

以吞吐量模式運行,允許指定多個進程

       測試前要先清空緩存

    sync; echo 3 > /proc/sys/vm/drop_caches

    sync; echo 0 > /proc/sys/vm/drop_caches

       直接Google 搜索iozone,打開官網,看了一下官方文檔,可憐我那蹩腳的英文啊,好不容易看完了,寫了這篇學習文檔,然後想baidu一下,靠,第一條百科就有差不多完整的中文解釋,所以不要迷戀google,有時度娘也是很給力的啊,對於網上流傳的測試文件大小最佳為內存的2倍,我在官方文檔中沒有找到,或許沒看見吧。

      參考鏈接:

     http://www.iozone.org/

     http://baike.baidu.com/view/3502720.html

      

      


Tags: processor primary 工作吧 操作系統 write

文章來源:


ads
ads

相關文章
ads

相關文章

ad