iozone是乙個檔案系統的benchmark工具,可以測試不同的作業系統中檔案系統的讀寫效能。 可以測試 read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬碟的效能。 測試的時候請注意,設定的測試檔案的大小一定要大過你的記憶體(最佳為記憶體的兩倍大小),不然linux會給你的讀寫的內容進行快取。會使數值非常不真實。
安裝
writer report48
1632
6432768
5300
8166
12726
16702
24441
65536
5456
8285
9630
16101
18679
131072
5539
6968
9453
13086
14136
262144
5088
7092
9634
11602
14776
524288
5427
9356
10502
13056
13865
1048576
6061
9625
11528
12632
13466
在execl檔案中的這段表,它說明了這個表單是關於write的測試結果,左側一列是測試檔案大小(kbytes),
最上邊一行是記錄大小,中間資料是測試的傳輸速度。舉例說明,比如表中的「5300」,意思是測試檔案大小為
32m,以記錄大小為4k來進行傳輸,它的傳輸速度為5300 kbytes/s
測試的定義
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機制的效能。
命令列引數
-+n no retests selected
Windows Linux系統下mysql編碼設定
方法1 怎樣手工修改mysql4.1以上版本預設編碼 使用php5 mysql 4.1.x 5.x 環境 mysql4匯入mysql5容易出現中文亂碼情況,因此,首先你需要做如下設定 這裡假設mysql是裝在c mysql目錄下 1 開始 執行,輸入cmd 按回車鍵 2 輸入cd c mysql b...
Windows Linux下的Python安裝指導
該篇主要介紹的是如何在windows和linux下安裝python環境。1.linux 在linux下安裝python環境還是比較簡單的,直接命令安裝 sudo apt get install python pip sudo apt get install python dev 驗證方式 pytho...
windows Linux下使用github流程
開放源 open source code 也稱為源 公開,指的是一種軟體發布模式。github是乙個利用git進行版本控制 專門用於存放軟體 與內容的共享虛擬主機服務。windows下的準備工作 ubuntu apt get install git centos yum install git gi...