IOMETER
官方網站:http://www.iometer.org/
Iometer的使用者指南上說,Iometer是一個單機或者叢集的I/O子系統的測量和描述工具。它最初是由英特爾公司在1998年2月17日的英特爾開發人員論壇(IDF)宣布,自那時以來,在行業內廣泛的蔓延,成為了標準。與此同時,英特爾已經停止Iometer的開發工作並把開放源碼交給了OSDL。 2001年11月,Iometer在SourceForge.net註冊,開發項目從2003年月2月起又重新啟動,當然項目維護者變成了獨立的一個內部工作群組。(而非Intel)
相比之前3個測試軟體,Iometer屬於測試軟體中比較自由的,可以按照使用者需要去調節測試的範圍,資料區塊大小,處理模式等等,當然初學者一開始會比較暈。Iometer當前穩定版為2006,而SandForce主控的SSD廠商卻普遍喜歡用Iometer 2008做測試(道理我後面會講),最新版本為iometer-1.1.0-rc1。這裡我會拿最新版來解釋。(選項更多)
Iometer包括2個程式,Iometer.exe和Dynamo.exe。其中Iometer是控製程序,是圖形介面,讓你輕鬆的調節參數和顯示測試結果,而Dynamo就是讓測試盤產生壓力測試的主程式了,用Iometer來控制Dynamo程式。在Windows下運行Iometer時,會自動開啟Dynamo程式(仔細觀察會發現開了2個視窗,那個Dos的命令列程式就是Dynamo了。)
1)Topology/Workers:
Worker的數量取決於當前機器上的CPU核心數(我的CPU是2600K,4核8線程,所以有8個Worker),每個Worker可以讓你制定硬碟同時執行的線程數,不過一般我們家用測試只跑一個Worker即可,所以只需要1個Worker即可,多線程測試適合高效能伺服器或者企業級的存放裝置用的。這裡多餘的Worker我們可以在測試前刪除。
2)Targets:(在設定Disk Target時會有3種不同的表徵圖來表示不同類型的硬碟情況)
黃色表徵圖的表示的是”Logical drive 邏輯磁碟“,意思就是已經分過區的,格式化的並且上面擁有檔案系統的磁碟。(會顯示硬碟分區卷標和卷標名)
如果黃色表徵圖上加了紅色刪除的線,則代表的是這塊邏輯硬碟上沒有iobw.tst檔案。Iometer在對邏輯硬碟測試前,會產生一個iobw.tst的測試檔案,通過對這個檔案進行”讀取/寫入“操作來計算IO成績和傳輸率。
藍色的表徵圖表示的是”原始(RAW)硬碟“的意思,指的是這塊硬碟上檔案系統無法識別或者沒分區和格式化,測試檔案不能在上面建立。(會顯示硬碟的型號)
這裡有一點需要注意,如果之前做過Iometer邏輯硬碟測試,並在這個分區裡已經有iobw.tst檔案,則在下次做測試前必須先刪除,不然是不能改變這個之前測試產生的iobw.txt檔案大小的。(也就是說會影響到下次測試的準確性)
3)Maximum Disk Size / Starting Disk Sector / # of Outstanding IO:
一般的機械硬碟sector(扇區)大小為512位元組(扇區為硬碟最小儲存單位)。如果這裡使用預設的0時,意思就是寫滿這塊硬碟的所有扇區,如果你想測的是固定大小時,可以透過設定Maximum Disk Size這個參數來達到。輸入1000就代表會在測試前產生一個大小為1000X512位元組的iobw.tst測試檔案。Starting Disk Sector指的是由硬碟的第幾個扇區開始寫入。(這裡要強調一點,如果你設定的Maximun Disk Size數字比當前磁碟系統的緩衝區小的話,測試成績很可能是緩衝區效能,速度會爆高,所以適當設大點吧。)
# of Outstanding I/O 指的是同時發送的IO請求(聰明人知道這個就是體現NCQ的作用了),預設值是1,一般家用測試不會去修改這個項目的,只有廠家秀分數做廣告時會去改成32來跑最大IOPS忽悠使用者。
4)Write IO Data Pattern(新版Iometer相比2006和2008版多出來的項目)
Repeating Bytes: 產生的IO資料是重複的,比如第一批IO資料是全”A”,第二批是全”B”,這個資料模型是Iometer 2008裡預設使用的,也是最適合SandForce主控壓縮演算法的,所以SandForce做廣告時都是用Iometer 2008的資料。
Peseudo random: 緩衝區裡用隨機的資料模型填滿,寫入完後再重建新的隨機資料到緩衝區,造成每次寫入IO都不同。這個資料模型是從最初的版本一直到Iometer 2006預設採用的,非常不適合SandForce主控進行壓縮演算法。
Full random:產生一套隨機的16MB大小的資料模型到緩衝區。每次寫入IO都會使用這套緩衝區的隨機資料模型。(雖然是隨機資料,但是由於每次的隨機資料都一樣,所以對採用了副本壓縮技術的SandForce控制器,相當於每次只需要更新隨機資料的索引部分即可,還是能夠壓縮部分資料。)
1)Transfer Request Size (測試請求的檔案大小)
你要測試的檔案塊大小,比如測4KB隨機的就填寫4KB,測128KB持續的就填128KB。
2)Percent of Access Specification (當前規則占此測試中的比例)
如果你測試中需要添加多條規則的話,這個就可以設定比例了,比如50%做4KB隨機測試,同時另外50%做128KB持續測試。
3)Percent Read/Write Distribution (測試請求的讀/寫的比率)
當前測試規則的讀取/寫入比率,比如66%讀取的同時34%為寫入,打個比方,我們的作業系統運行時在讀取的時候,後台也在寫入。
4)Percent Random/Sequential Distribution (測試請求的隨機/持續比例)
隨機和持續占的百分比,比如測4KB隨機80%的同時測4KB持續20%。
5)Align I/O on (對齊 I/O到指定大小)
SSD要分區對齊,這裡也是這個道理,一般測SSD都是對齊到4KB。如果設4KB,指的是測試的資料每次都是4KB對齊的。
6)設定規則的全域顯示
全部設定完了,起個名字,然後最後再看下沒問題即可點下面的OK確認。
1)Run Time (測試時間)
可以設定測試的時間,如果全0代表無限。
2)Ramp up Time
我們知道如果磁碟系統使用陣列卡的話,上來會有個很高的快取資料,為了保證測試資料的準確性,這裡可以設定一定的時間,這樣測試結果就不會計算這部分時間的資料,得到更真實的測試數字。
1)Update Frequency (Seconds) (成績更新頻率/秒)
成績更新的頻率,你可以設定每秒更新或者60秒一更新等等。
Results Since (結果從哪個時間段開始)
Start of Test - 由於在進行測試時,每一秒的成績都不同,如果選擇這個選項,那麼Iometer顯示的就是從測試一開始到現在為止的平均值。
Last of Update - 如果選擇的是這個,那麼Iometer就會顯示最後次更新到現在的平均值。(如果你更新頻率為30秒,那麼成績就是這個30秒內的平均值)
2)測試結果顯示地區(圖裡的為預設,可以自己選擇需要的結果)
Total I/Os Per Second 當前規則下,每秒處理的IOPS數。
Total MBs per Second 當前規則下,每秒的傳輸率。
Average I/O Response Time (ms) 當前規則下,平均一次IOPS處理時間。
Maximum I/O Response Time (ms) 當前規則下,最大一次IOPS處理時間。
%CPU Utilization (total) 當前規則下,CPU佔用率
Total Error Count 當前測試中,測試出錯計數。
其實還有很多的測試結果項目可以選,喜歡深入研究的朋友可以繼續發掘,我這裡也只是簡單的介紹這款功能強大的Iometer軟體。