Linux下硬盤性能測試
[root@centos7-1605 ~]# dd --help 用法:dd [操作數] ... 或:dd 選項 Copy a file, converting and formatting according to the operands. bs=BYTES read and write up to BYTES bytes at a time cbs=BYTES convert BYTES bytes at a time conv=CONVS convert the file as per the comma separated symbol list count=N copy only N input blocks ibs=BYTES read up to BYTES bytes at a time (default: 512) if=FILE read from FILE instead of stdin iflag=FLAGS read as per the comma separated symbol list obs=BYTES write BYTES bytes at a time (default: 512) of=FILE write to FILE instead of stdout oflag=FLAGS write as per the comma separated symbol list seek=N skip N obs-sized blocks at start of output skip=N skip N ibs-sized blocks at start of input status=LEVEL The LEVEL of information to print to stderr; 'none' suppresses everything but error messages, 'noxfer' suppresses the final transfer statistics, 'progress' shows periodic transfer statistics N and BYTES may be followed by the following multiplicative suffixes: c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y. Each CONV symbol may be: ascii from EBCDIC to ASCII ebcdic from ASCII to EBCDIC ibm from ASCII to alternate EBCDIC block pad newline-terminated records with spaces to cbs-size unblock replace trailing spaces in cbs-size records with newline lcase change upper case to lower case ucase change lower case to upper case sparse try to seek rather than write the output for NUL input blocks swab swap every pair of input bytes sync pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs excl fail if the output file already exists nocreat do not create the output file notrunc 不截斷輸出文件 noerror 讀取數據發生錯誤後仍然繼續 fdatasync 結束前將輸出文件數據寫入磁盤 fsync 類似上面,但是元數據也一同寫入 FLAG 符號可以是: append 追加模式(僅對輸出有意義;隱含了conv=notrunc) direct 使用直接I/O 存取模式 directory 除非是目錄,否則 directory 失敗 dsync 使用同步I/O 存取模式 sync 與上者類似,但同時也對元數據生效 fullblock 為輸入積累完整塊(僅iflag) nonblock 使用無阻塞I/O 存取模式 noatime 不更新存取時間 nocache 丟棄緩存數據 noctty 不根據文件指派控制終端 nofollow 不跟隨鏈接文件 count_bytes treat 'count=N' as a byte count (iflag only) skip_bytes treat 'skip=N' as a byte count (iflag only) seek_bytes treat 'seek=N' as a byte count (oflag only) Sending a USR1 signal to a running 'dd' process makes it print I/O statistics to standard error and then resume copying. $ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid 18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s 示例一、 [root@centos7-1605 ~]# dd if=/dev/zero of=testfile bs=20M count=100 conv=fdatasync 記錄了100+0 的讀入 記錄了100+0 的寫出 2097152000字節(2.1 GB)已復制,19.7587 秒,106 MB/秒 註意:多次測試最後求平均值,最好每次測試前將系統緩存刪除一下 echo 3> /proc/sys/vm/drop_caches
2、磁盤測試命令hdparm
1、 -t參數可以測試硬盤讀寫速率 [root@centos7-1605 ~]# hdparm -t /dev/sda2 /dev/sda2: Timing buffered disk reads: 318 MB in 3.01 seconds = 105.61 MB/sec [root@centos7-1605 ~]# 2、-T 參數可以測試內存緩存的速率 [root@centos7-1605 ~]# hdparm -T /dev/sda2 /dev/sda2: Timing cached reads: 12322 MB in 2.00 seconds = 6167.64 MB/sec
不僅要測試
dmesg |grep sata 可以查看看sata硬盤的運行級別
3、測試軟件bonnie++
在默認的yum源中是沒有bonnie++軟件的,我們需要在額外添加一個叫RepoForge的yum源,其官網地址為http://repoforge.org/,
安裝CentOS7 yum源:
rpm -ivh http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install -y bonnie++ #安裝測試軟件 測試 bonnie++ -u root #制定一個用戶即可使用默認參數測試 默認會生成8G大小的文件,會分成8份會通過寫操作 讀操作、隨機操作等操作測試 [root@centos7-1605 ~]# bonnie++ -u root Using uid:0, gid:0. Writing a byte at a time...done Writing intelligently...done Rewriting...done Reading a byte at a time...done Reading intelligently...done start 'em...done...done...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.97 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -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 centos7-1605. 7576M 709 99 101811 8 59275 6 2671 99 118595 5 6809 155 Latency 17472us 46186us 2002ms 10232us 1038ms 7091us Version 1.97 ------Sequential Create------ --------Random Create-------- centos7-1605.local -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ Latency 1187us 111us 755us 1436us 29us 52394us 1.97,1.97,centos7-1605.local,1,1527113410,7576M,,709,99,101811,8,59275,6,2671,99,118595,5,6809,155,16,,,,,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,17472us,46186us,2002ms,10232us,1038ms,7091us,1187us,111us,755us,1436us,29us,52394us 主要有Sequential Output(順序輸出 寫操作) Sequential Input(循序輸入 讀操作) Random Seeks(隨機尋道)Sequential Create(順序創建) Random Create(隨機創建)等部分 Per Chr 字符形式 Block 塊形式 Rewrite 重寫 %CP CPU的使用率 ++號可能是值太小被忽略
4、 iozone測試硬盤狀態
可以通過 write, re-write, read, re-read, random read, random write, random mix, backwards read, record rewirte, strided read, fwrite, frewrite, fread, freread, mmap, async I/0 等不同的模式下的硬盤的性能。
測試的時候請註意,設置的測試文件的大小一定要大過你的內存(最佳為內存的兩倍大小),不然linux會給你的讀寫的內容進行緩存,會使數值非常不準確。
yum install -y iozone
測試實例 iozone -l 1 -u 1 -r 16K -s 128M -F /tmp/tmpfile -l 最小線程 -r 最大線程 -r 讀寫的塊 -s 制定文件 -F 臨時文件 [root@centos7-1605 var]# iozone -l 1 -u 1 -r 16K -s 128M -F /tmp/tmpfile Iozone: Performance Test of File I/O Version $Revision: 3.424 $ Compiled for 64 bit mode. Build: linux-AMD64 Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner, Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone, Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root, Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer, Vangel Bojaxhi, Ben England, Vikentsi Lapa. Run began: Wed May 23 23:22:38 2018 Record Size 16 kB File size set to 131072 kB Command line used: iozone -l 1 -u 1 -r 16K -s 128M -F /tmp/tmpfile Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. Min process = 1 Max process = 1 Throughput test with 1 process Each process writes a 131072 kByte file in 16 kByte records Children see throughput for 1 initial writers = 1301841.75 kB/sec Parent sees throughput for 1 initial writers = 104271.16 kB/sec Min throughput per process = 1301841.75 kB/sec Max throughput per process = 1301841.75 kB/sec Avg throughput per process = 1301841.75 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 rewriters = 3018765.25 kB/sec Parent sees throughput for 1 rewriters = 105599.76 kB/sec Min throughput per process = 3018765.25 kB/sec Max throughput per process = 3018765.25 kB/sec Avg throughput per process = 3018765.25 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 readers = 5413710.50 kB/sec Parent sees throughput for 1 readers = 5205784.06 kB/sec Min throughput per process = 5413710.50 kB/sec Max throughput per process = 5413710.50 kB/sec Avg throughput per process = 5413710.50 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 re-readers = 5649890.00 kB/sec Parent sees throughput for 1 re-readers = 5533982.50 kB/sec Min throughput per process = 5649890.00 kB/sec Max throughput per process = 5649890.00 kB/sec Avg throughput per process = 5649890.00 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 reverse readers = 5126607.00 kB/sec Parent sees throughput for 1 reverse readers = 5018455.90 kB/sec Min throughput per process = 5126607.00 kB/sec Max throughput per process = 5126607.00 kB/sec Avg throughput per process = 5126607.00 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 stride readers = 5201499.00 kB/sec Parent sees throughput for 1 stride readers = 5104425.23 kB/sec Min throughput per process = 5201499.00 kB/sec Max throughput per process = 5201499.00 kB/sec Avg throughput per process = 5201499.00 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 random readers = 5115397.00 kB/sec Parent sees throughput for 1 random readers = 5009629.92 kB/sec Min throughput per process = 5115397.00 kB/sec Max throughput per process = 5115397.00 kB/sec Avg throughput per process = 5115397.00 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 mixed workload = 5025566.50 kB/sec Parent sees throughput for 1 mixed workload = 4931217.40 kB/sec Min throughput per process = 5025566.50 kB/sec Max throughput per process = 5025566.50 kB/sec Avg throughput per process = 5025566.50 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 random writers = 3322413.50 kB/sec Parent sees throughput for 1 random writers = 111279.78 kB/sec Min throughput per process = 3322413.50 kB/sec Max throughput per process = 3322413.50 kB/sec Avg throughput per process = 3322413.50 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 pwrite writers = 1825668.12 kB/sec Parent sees throughput for 1 pwrite writers = 102905.21 kB/sec Min throughput per process = 1825668.12 kB/sec Max throughput per process = 1825668.12 kB/sec Avg throughput per process = 1825668.12 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 pread readers = 4462963.00 kB/sec Parent sees throughput for 1 pread readers = 4265415.77 kB/sec Min throughput per process = 4462963.00 kB/sec Max throughput per process = 4462963.00 kB/sec Avg throughput per process = 4462963.00 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 fwriters = 3229643.75 kB/sec Parent sees throughput for 1 fwriters = 110374.10 kB/sec Min throughput per process = 3229643.75 kB/sec Max throughput per process = 3229643.75 kB/sec Avg throughput per process = 3229643.75 kB/sec Min xfer = 131072.00 kB Children see throughput for 1 freaders = 4342435.50 kB/sec Parent sees throughput for 1 freaders = 4267932.42 kB/sec Min throughput per process = 4342435.50 kB/sec Max throughput per process = 4342435.50 kB/sec Avg throughput per process = 4342435.50 kB/sec Min xfer = 131072.00 kB iozone test complete.
最簡單開始使用iozone方法是自動模式
1 #/opt/iozone/bin/iozone -a
iozone將在所有模式下進行測試,使用記錄塊從4k到16M,測試文件大小從64k到512M。
如果想以圖表形式顯示測試結果,可以使用,iozone將測試結果放在Excel中
1 #/opt/iozone/bin/iozone -Ra 或 #/opt/iozone/bin/iozone -Rab output.xls
如果內存大於512MB,則測試文件需要更大;最好測試文件是內存的兩倍。例如內存為1G,將測試文件設置最大為2G
#/opt/iozone/bin/iozone -Ra -g 2g
如果我們只關心文件磁盤的read/write性能,而不必花費時間在其他模式上測試,則我們需要指定測試模式。具體將在參數解釋中介紹
1 #/opt/iozone/bin/iozone -Ra -g 2g -i 0 -i 1
最後,如果我們測試的NFS,將使用-c,這通知iozone在測試過程中執行close()函數。使用close()將減少NFS客戶端緩存的影響。但是如果測試文件比內存大,就沒有必要使用參數-c
1 #/opt/iozone/bin/iozone -Rac
測試的定義
Write: 測試向一個新文件寫入的性能。當一個新文件被寫入時,不僅僅是那些文件中的數據需要被存儲,還包括那些用於定位數據存儲在存儲介質的具體位置的額外信息。這些額外信息被稱作“元數據”。它包括目錄信息,所分配的空間和一些與該文件有關但又並非該文件所含數據的其他數據。拜這些額外信息所賜,Write的性能通常會比Re-write的性能低。
Re-write: 測試向一個已存在的文件寫入的性能。當一個已存在的文件被寫入時,所需工作量較少,因為此時元數據已經存在。Re-write的性能通常比Write的性能高。
Read: 測試讀一個已存在的文件的性能。
Re-Read: 測試讀一個最近讀過的文件的性能。Re-Read性能會高些,因為操作系統通常會緩存最近讀過的文件數據。這個緩存可以被用於讀以提高性能。
Random Read: 測試讀一個文件中的隨機偏移量的性能。許多因素可能影響這種情況下的系統性能,例如:操作系統緩存的大小,磁盤數量,尋道延遲和其他。
Random Write: 測試寫一個文件中的隨機偏移量的性能。同樣,許多因素可能影響這種情況下的系統性能,例如:操作系統緩存的大小,磁盤數量,尋道延遲和其他。
Random Mix: 測試讀寫一個文件中的隨機偏移量的性能。同樣,許多因素可能影響這種情況下的系統性能,例如:操作系統緩存的大小,磁盤數量,尋道延遲和其他。這個測試只有在吞吐量測試模式下才能進行。每個線程/進程運行讀或寫測試。這種分布式讀/寫測試是基於round robin 模式的。最好使用多於一個線程/進程執行此測試。
Backwards Read: 測試使用倒序讀一個文件的性能。這種讀文件方法可能看起來很可笑,事實上,有些應用確實這麽幹。MSC Nastran是一個使用倒序讀文件的應用程序的一個例子。它所讀的文件都十分大(大小從G級別到T級別)。盡管許多操作系統使用一些特殊實現來優化順序讀文件的速度,很少有操作系統註意到並增強倒序讀文件的性能。
Record Rewrite: 測試寫與覆蓋寫一個文件中的特定塊的性能。這個塊可能會發生一些很有趣的事。如果這個塊足夠小(比CPU數據緩存小),測出來的性能將會非常高。如果比CPU數據緩存大而比TLB小,測出來的是另一個階段的性能。如果比此二者都大,但比操作系統緩存小,得到的性能又是一個階段。若大到超過操作系統緩存,又是另一番結果。
Strided Read: 測試跳躍讀一個文件的性能。舉例如下:在0偏移量處讀4Kbytes,然後間隔200Kbytes,讀4Kbytes,再間隔200Kbytes,如此反復。此時的模式是讀4Kbytes,間隔200Kbytes並重復這個模式。這又是一個典型的應用行為,文件中使用了數據結構並且訪問這個數據結構的特定區域的應用程序常常這樣做。
許多操作系統並沒註意到這種行為或者針對這種類型的訪問做一些優化。同樣,這種訪問行為也可能導致一些有趣的性能異常。一個例子是在一個數據片化的文件系統裏,應用程序的跳躍導致某一個特定的磁盤成為性能瓶頸。
Fwrite: 測試調用庫函數fwrite()來寫文件的性能。這是一個執行緩存與阻塞寫操作的庫例程。緩存在用戶空間之內。如果一個應用程序想要寫很小的傳輸塊,fwrite()函數中的緩存與阻塞I/O功能能通過減少實際操作系統調用並在操作系統調用時增加傳輸塊的大小來增強應用程序的性能。
這個測試是寫一個新文件,所以元數據的寫入也是要的。
Frewrite:測試調用庫函數fwrite()來寫文件的性能。這是一個執行緩存與阻塞寫操作的庫例程。緩存在用戶空間之內。如果一個應用程序想要寫很小的傳輸塊,fwrite()函數中的緩存與阻塞I/O功能能通過減少實際操作系統調用並在操作系統調用時增加傳輸塊的大小來增強應用程序的性能。
這個測試是寫入一個已存在的文件,由於無元數據操作,測試的性能會高些。
Fread:測試調用庫函數fread()來讀文件的性能。這是一個執行緩存與阻塞讀操作的庫例程。緩存在用戶空間之內。如果一個應用程序想要讀很小的傳輸塊,fwrite()函數中的緩存與阻塞I/O功能能通過減少實際操作系統調用並在操作系統調用時增加傳輸塊的大小來增強應用程序的性能。
Freread: 這個測試與上面的fread 類似,除了在這個測試中被讀文件是最近才剛被讀過。這將導致更高的性能,因為操作系統緩存了文件數據。
幾個特殊測試:
Mmap:許多操作系統支持mmap()的使用來映射一個文件到用戶地址空間。映射之後,對內存的讀寫將同步到文件中去。這對一些希望將文件當作內存塊來使用的應用程序來說很方便。一個例子是內存中的一塊將同時作為一個文件保存在於文件系統中。
mmap 文件的語義和普通文件略有不同。如果發生了對內存的存儲,並不是立即發生相應的文件I/O操作。使用MS_SYNC 和MS_ASYNC標誌位的 msyc()函數調用將控制內存和文件的一致性。調用msync() 時將MS_SYNC置位將強制把內存裏的內容寫到文件中去並等待直到此操作完成才返回。而MS_ASYNC 置位則告訴操作系統使用異步機制將內存刷新到磁盤,這樣應用程序可以直接返回而不用等待此操作的完成。
這個測試就是測量使用mmap()機制完成I/O的性能。
Async I/O: 許多操作系統支持的另外一種I/O機制是POSIX 標準的異步I/O。本程序使用POSIX標準異步I/O接口來完成此測試功能。
例如: aio_write(), aio_read(), aio_error()。這個測試測量POSIX異步I/O機制的性能。
參數介紹
iozone功能很強大,當然參數也很多,但是我們常用的就那幾個參數
Usage: iozone [-s filesize_Kb] [-r record_size_Kb ] [-f [path]filename]
[-i test] [-E] [-p] [-a] [-A] [-z] [-Z] [-m] [-M] [-t children] [-h] [-o]
[-l min_number_procs] [-u max_number_procs] [-v] [-R] [-x]
[-d microseconds] [-F path1 path2...] [-V pattern] [-j stride]
[-T] [-C] [-B] [-D] [-G] [-I] [-H depth] [-k depth] [-U mount_point]
[-S cache_size] [-O] [-K] [-L line_size] [-g max_filesize_Kb]
[-n min_filesize_Kb] [-N] [-Q] [-P start_cpu] [-c] [-e] [-b filename]
[-J milliseconds] [-X filename] [-Y filename] [-w] [-W]
[-y min_recordsize_Kb] [-q max_recordsize_Kb] [-+m filename]
[-+u ] [ -+d ] [-+p percent_read] [-+r] [-+t ] [-+A #]
-a
全自動模式測試。測試記錄塊大小從4k到16M,測試文件從64k到512M
-A
使用自動模式雖然測試比較全面,但是比較花時間。-a選項將在文件大於32MB時停止使用低於64k一下記錄塊,來節省時間。-A通知iozone不要節省時間,進行所有測試。註:在3.61版本以後不建議使用,用-az代替-aA
-B
使用mmap()。這將使用mmap()接口來創建並訪問所有測試用的臨時文件。一些應用程序傾向於將文件當作內存的一塊來看待。這些應用程序對文件執行mmap()調用,然後就可以以讀寫內存的方式訪問那個塊來完成文件I/O。
-c
計算時間將close()包括進來
-C
顯示吞吐量測試中每個客戶端的字節數。
-D
對mmap文件使用MSYNC(MS_ASYNC)。告訴操作系統在mmap空間的所有數據需要被異步的寫到磁盤上。
-e
測試時間是包含flush(fsync, fflush)
-f filename
指定用來測試臨時文件,在測試完成後將被自動刪除
-F filename filename ...
指定測試中每個臨時文件名,文件名的數量應該和指定的進程或線程數相同
-g #
在自動模式下設置文件最大值,可以使用#k #m #g分別表示kb,mb,gb
-G
對mmap文件使用msync(MS_SYNC)。告訴操作系統在mmap空間的所有數據需要被同步的寫到磁盤上
-h
顯示幫助
-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。通知文件系統所有操作跳過緩存直接在磁盤上操作
-j #
設置訪問文件的跨度為(# * 塊)。stride read測試將使用這個跨度來讀塊
-J #(毫秒)
在每個I/O操作之前產生指定毫秒的計算延遲。看-X和-Y獲取控制計算延遲的其他參數
-l #
設置程序最小進程數。在測試過程允許用戶設置的最小進程或線程數。需要配合-u選項使用。
-L #
設置處理器交換信息的單位量為#(bytes)。可以加速測試。
-m
iozone將在內部使用多個緩存。一些程序反復復寫一塊緩存,還有就是設置多個緩存塊。此參數將允許使用這兩種模式。iozone默認行為是重復使用內部一個緩存。此選項將允許在內部使用多個緩存塊。
-M
調用uname(),將返回字符串放在輸出文件中
-n #
設置自動模式下測試文件的最小值
-N
報告結果以毫秒每操作的方式顯示
-o
寫方式是同步寫到磁盤上
-O
報告結果以操作每秒方式顯示
-q #
在自動模式下設置記錄塊的最大值,可以使用#k(kb),#m(mb),#g(gb)。使用-y可以設置最小值
-r #
設置記錄塊大小為#
-R
使用Excel顯示結果
-s #
設置測試文件大小
-S #
設置處理器的緩存大小
-t #
設置測試程序的線程或進程數
-T
使用POSIX的pthreads進行測試
-u #
設置最大進程或線程數,需要配合-l參數使用
-U mountpoint
在測試開始之前,iozone將unmount和remount掛載點。這將保證測試中緩存不包含任何文件
-w
在測試結束後不要刪除臨時文件。臨時文件將在測試過後保存下來
-W
在測試過程中,當讀或寫文件時鎖住文件
-y #
設置記錄塊最小值
-z
同-a一起使用,進行全部測試
-Z
允許mmap I/O和file I/O混合使用
下面做個在我機器上做的測試:只進行read/write測試,測試文件大小是4G,記錄塊從2k到8m,並將測試數據輸出到Excel文件中
#先在/tmp目錄下創建一個文件
[root@comput3 mnt]# cd /tmp/
[root@comput3 tmp]# touch testfile
[root@comput3 tmp]# ll
total 0
-rw-r--r-- 1 root root 0 Jun 22 13:22 testfile
#再執行測試命令(生成的文件大小,別給太大,會卡死。我們指定4G)
[root@comput3 mnt]# /opt/iozone/bin/iozone -a -s 4g -i 0 -i 1 -f /tmp/testfile -y 2k -q 8m -Rb output.xls
Iozone: Performance Test of File I/O
Version $Revision: 3.465 $
Compiled for 32 bit mode.
Build: linux
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
Vangel Bojaxhi, Ben England, Vikentsi Lapa,
Alexey Skidanov.
Run began: Thu Jun 22 13:22:56 2017
Auto Mode
File size set to 4194304 kB
Using Minimum Record Size 2 kB
Using Maximum Record Size 8192 kB
Excel chart generation enabled
Command line used: /opt/iozone/bin/iozone -a -s 4g -i 0 -i 1 -f /tmp/testfile -y 2k -q 8m -Rb output.xls
Output is in kBytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 kBytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
4194304 2 1490669 2380831 3607767 3608702
4194304 4 2055341 3253580 5060700 5085952
4194304 8 2437956 3670713 5750648 5794959
4194304 16 2529686 3698703 5750735 5778162
4194304 32 2599803 3766791 5698635 5736475
4194304 64 2660804 3828547 5624593 5665942
4194304 128 2680742 3910113 5381341 5393153
4194304 256 2515596 3830578 4935002 4965230
4194304 512 2528649 3832630 4915910 4947781
4194304 1024 2701632 3890505 4944666 4976889
4194304 2048 2722534 3941544 4931400 4963038
4194304 4096 2674452 3848342 4815188 4841886
4194304 8192 2305839 3121477 3571541 3581370
iozone test complete.
Excel output is below:
"Writer report"
"2" "4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192"
"4194304" 1490669 2055341 2437956 2529686 2599803 2660804 2680742 2515596 2528649 2701632 2722534 2674452 2305839
"Re-writer report"
"2" "4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192"
"4194304" 2380831 3253580 3670713 3698703 3766791 3828547 3910113 3830578 3832630 3890505 3941544 3848342 3121477
"Reader report"
"2" "4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192"
"4194304" 3607767 5060700 5750648 5750735 5698635 5624593 5381341 4935002 4915910 4944666 4931400 4815188 3571541
"Re-Reader report"
"2" "4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192"
"4194304" 3608702 5085952 5794959 5778162 5736475 5665942 5393153 4965230 4947781 4976889 4963038 4841886 3581370
[root@comput3 mnt]# pwd
/mnt
[root@comput3 mnt]# ll
total 4
-rw-r--r-- 1 root root 3940 Jun 22 13:24 output.xls
最後數據就是測試結果,左邊第一列是測試文件大小,第二列是記錄塊大小(單位是kb),以後每列就是測試模式(單位是kb/s)
Linux下硬盤性能測試