本節書摘來華章計算機《vsphere性能設計:性能密集場景下cpu、記憶體、存儲及網絡的最佳設計實踐》一書中的第2章 ,第2.4.2節,[美] 克裡斯托弗·庫塞克(christopher kusek) 著 呂南德特·施皮斯(rynardt spies)姚海鵬 劉韻潔 譯, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
如第7章所述,存儲通常對整個虛拟機的性能影響最大。一個機構可以購買具有最強cpu、巨大容量ram的伺服器,但是如果存儲能力不能滿足性能需求,那麼所有虛拟機都将受到影響。正因如此,在投入生産環境之前,擁有一個用來測試和驗證存儲平台性能的工具集是十分重要的。
iometer
生成存儲i/o最知名的工具應該就是iometer。iometer深受大家喜愛,因為它可以生成特定類型的i/o來模拟應用的負載配置。可以将i/o配置成随機或者連續、讀或寫,還可以選擇使用特定的塊大小。是以iometer不僅是一個可以生成i/o活動的工具,且它生成的i/o能夠非常接近地模拟實際應用生成的i/o。并且由于它隻是一個運作在windows或linux下的應用程式,是以iometer可以友善地在實體或虛拟伺服器上使用。
iometer通過在虛拟機上生成一個測試檔案,然後針對這個檔案運作i/o測試。這個測試檔案是定義在分區裡的,是以需要在開始測試之前把千兆位元組轉化為分區。在maximum disk size方框中填入合适的分區的數量,如圖2-14所示。這個例子中,使用16777216個分區來生成一個8gb的測試檔案。要確定在targets下選擇了适當的磁盤(如果虛拟機有多個虛拟磁盤)并選擇了适當的worker數量。每個worker都是一個産生i/o的線程,worker的總數不應該超過配置設定給虛拟機的vcpu的數量。
iometer測試檔案的大小
當運作一個測試檔案時,為iometer測試檔案選擇合适的大小是很重要的。一個常見的錯誤是,如果運作一個太小的iometer測試檔案,會導緻不正确的結果。當一個作業系統(如windows)讀一個檔案時,為了更快地讀取它會複制檔案的一部分(或整個檔案)到ram中。對于iometer測試來說,這樣就會使結果偏離,因為是從ram中讀取而不是從磁盤中讀取。
根據經驗産生的iometer測試檔案的大小應該至少是配置的ram大小的兩倍。這樣就消除了作業系統在ram中緩存檔案的可能性,消除了對結果的影響。

接下來,要為測試定義接入參數,來确定想要産生的i/o類型。例如,如圖2-15所示,正在用一個16kb的塊産生一個新的接入參數,讀和寫的比例分别是60%和40%。這些i/o會分成60%随機和40%順序。如果這個i/o配置符合你的期望,那麼運作這個測試你就能知道在這個預期負載下存儲的性能。你還可以調整與特定存儲陣列相比對的隊列深度。第7章将讨論更多有關隊列深度的細節。
一旦測試配置完成,就可以簡單地選擇螢幕上方的綠色标記來啟動。選擇results display标簽可以看到實時結果。滑動update frequency滑塊到一個較低的值,如1或2,如圖2-16所示。為了有一個更形象(也更有趣)的視圖,選擇每行末尾的“>”按鈕,可以彈出一個計速器視圖,如圖2-17所示。
iometer帶有一些預設接入參數,但是最好定義一個與你的環境最相符的參數。盡管可以簡單地生成盡可能多的i/o進行測試,來觀察存儲基礎設施極限,但是測試中可能沒有那麼多的值,除非你試圖出售存儲陣列。畢竟,如果測試與實際的存儲i/o配置檔案不準确比對,最終資料将是沒有用的。
當測試完成之後,你不僅可以知道能夠生成的iops的數量,還可以知道記錄下來的延遲。一般來說,iops的值越高,性能越好,隻要iops的延遲在合理範圍即可。可接受的延遲值取決于使用的存儲類型,但對大部分工作負載來說,5~10毫秒是可接受的延遲。
應用類型多種多樣,是以根據應用類型的不同i/o負載也不同。在使用iometer之前了解你期望的i/o配置檔案是很重要的。輸出結果好壞取決于你的測試資料,是以在使用iometer之前要得到期望的i/o配置檔案的準确描述。如果你不确定i/o配置檔案是怎樣的,請與應用所有者或者軟體供應商聯系。或者如果你隻是希望測試存儲陣列的界限,你可以配置iometer來嘗試驅動存儲的最大iops數量。
有關iometer的更多資訊以及工具下載下傳,請通路www.iometer.org。
i/o分析器
i/o分析器是vmware用來測量虛拟環境中存儲性能的一個虛拟工具。i/o分析器使用iometer來産生i/o負載。它還可以把存儲i/o軌迹作為輸入來産生一個自動的負載或者更接近真實應用的工作負載。
i/o分析器提供了一個簡單易用的圖形界面來在虛拟基礎設施中運作iometer測試。它的功能超過iometer,可以讓你回放實際工作負載的軌迹,并且有定時功能,可以在一天的特定時間運作測試。
i/o分析器與簡單地運作iometer還有一點不同,它可以看到esxtop。如果你給esxi主機授權,i/o分析器可以顯示iometer的測試結果以及相關的esxtop元件。在一個畫面中可以看到兩個工具的結果,可以大大節省時間,這是使用i/o分析器的一大好處。
輕松地運作iometer測試并檢視結果是i/o分析器的關鍵好處。這個工具由vmware免費提供,有一個vmware labs fling,是性能工具箱中的便捷工具。