iozone
iozone是一個文件系統的benchmark工具,可以測試不同的操作系統中文件系統的讀寫性能。可以測試 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬盤的性能。
常用參數
-
自動測試參數
-a 全自動模式測試。測試記錄塊大小從4k到16M,測試文件從64k到512M。
-z 同-a一起使用,進行全部測試
-A 使用自動模式雖然測試比較全面,但是比較花時間。-a選項將在文件大於32MB時停止使用低於64k一下記錄塊,來節省時間。-A通知iozone不要節省時間,進行所有測試。注:在3.61版本以后不建議使用,用-az代替-aA。-n # 設置自動模式下測試文件最小值。
-g # 設置自動模式下測試文件最大值,可以使用#k #m #g分別表示kb,mb,gb。-y # 在自動模式下設置記錄塊的最小值
-q # 在自動模式下設置記錄塊的最大值,可以使用#k(kb),#m(mb),#g(gb)。使用-y可以設置最小值。 -
mmap
-B 使用mmap()。這將使用mmap()接口來創建並訪問所有測試用的臨時文件。一些應用程序傾向於將文件當作內存的一塊來看待。這些應用程序對文件執行mmap()調用,然后就可以以讀寫內存的方式訪問那個塊來完成文件I/O。
-D 對mmap文件使用MSYNC(MS_ASYNC)。告訴操作系統在mmap空間的所有數據需要被異步的寫到磁盤上。
-G 對mmap文件使用msync(MS_SYNC)。告訴操作系統在mmap空間的所有數據需要被同步的寫到磁盤上。
-Z 允許mmap I/O和file I/O混合使用 -
測試報告 -Rb xx.xls
-b iozone將會創建一個兼容於Excel的結果輸出文件,這個文件是二進制文件格式的。
-N 報告結果以毫秒每操作的方式顯示。
-O 報告結果以操作每秒方式顯示。
-R 使用Excel顯示結果。 -
測試時間尺度
-c 計算時間將close()包括進來。使用close()將減少NFS客戶端緩存的影響NFS
-e 測試時間是包含flush(fsync, fflush)。 -
文件
-f filename
指定用來測試臨時文件,在測試完成后將被自動刪除。
-F filename filename ...
指定測試中每個臨時文件名,文件名的數量應該和指定的進程或線程數相同。-l -u
-r # 設置記錄塊大小為#。可以通過-r #k (Kbytes) 或 -r #m (Mbytes) 或 -r #g (Gbytes).
-s # 設置測試文件大小。
-S # 設置處理器的緩存大小。
-p 測試前清除處理器緩存
-w 在測試結束后不要刪除臨時文件。臨時文件將在測試過后保存下來
-W 在測試過程中,當讀或寫文件時鎖住文件 -
測試模式
-i # 指定運行的測試模式。可以使用-i # -i # -i #進行多個測試:
0 = write/rewrite
1 = read/re-read
2 = random read/random write
3 = backwards read
4 = re-write-record
5 = stride-read
6 = fwirte/re-fwrite
7 = fread/re-fread
8 = random mix
9 = pwrite/re-pwrite
10 = pread/re-pread
11 = pwritev/re-pwritev
12 = preadv/re-preadv-I 對所有文件操作使用DIRECT I/O。通知文件系統所有操作跳過緩存直接在磁盤上操作。
-o 寫方式是同步寫到磁盤上。-j # 設置訪問文件的跨度為(# * 塊)。stride read測試將使用這個跨度來讀塊。
-J #(毫秒)在每個I/O操作之前產生指定毫秒的計算延遲。看-X和-Y獲取控制計算延遲的其他參數。進程和線程
-l # 設置程序最小進程數。在測試過程允許用戶設置的最小進程或線程數。需要配合-u選項使用。
-u # 設置最大進程或線程數,需要配合-l參數使用。-t # 設置測試程序的線程或進程數。
-T 使用POSIX的pthreads進行測試。 -
其他
-C 顯示吞吐量測試中每個客戶端的字節數。
-L # 設置處理器交換信息的單位量為#(bytes)。可以加速測試。
-m iozone將在內部使用多個緩存。一些程序反復復寫一塊緩存,還有就是設置多個緩存塊。此參數將允許使用這兩種模式。iozone默認行為是重復使用內部一個緩存。此選項將允許在內部使用多個緩存塊。
-M 調用uname(),將返回字符串放在輸出文件中。
-U mountpoint 在測試開始之前,iozone將unmount和remount掛載點。這將保證測試中緩存不包含任何文件