天天看點

真實世界的存儲工作負載是什麼,我為什麼關注它?

真實世界的工作負載測試一直是計算機大容量存儲測試的必殺技。速度更快的ssd與虛拟化計算的使用已經将測試和評估ssd存儲解決方案的焦點從極端基準測試轉移到現實世界存儲工作負載的捕獲和使用。

新的免費軟體工具,可在www.testmyworkload.com下載下傳,允許跨平台捕獲,實作真實世界存儲級工作負載的可視化測試。

真實世界的存儲工作負載是什麼?真實世界的工作負載,從存儲ssd角度來看,是使用計算機系統,資料中心網絡伺服器,超融合伺服器,獨立伺服器,桌上型電腦或筆記本電腦時出現的io流的集合。 io流部分是由你的軟體應用程式,作業系統(os),使用者操作,中繼資料,日志活動,存儲分層政策,raid配置以及硬體和軟體層抽象生成的。

ssd工作負載io流是由不同資料傳輸大小(或塊大小)和讀/寫(r/w)混合的特定随機(rnd)或順序(seq)通路組成。

工作負載io流從使用者空間到存儲,周遊硬體和軟體堆棧然後傳回。io流可以通過諸如虛拟化,分組化,資料簡化(壓縮和重複資料删除),加密等多種活動在每個硬體和軟體層受到影響(變化)。此外,io流可以被分解成更小的随機或并發傳輸,并入更大的并行或異步io或追加建立不同的資料傳輸大小。

典型的真實世界工作負載是由幾十,幾百甚至更多的io流組成,io活動通常由少量的io流支配。例如,可能會出現幾百個獨立io流,在那裡隻有六到八個流構成io活動總數的90%或更多。

我為什麼要關心它?

ssd性能是不對稱的——ssd性能本身就不對稱(讀取速度更快,寫入速度更慢),性能高度依賴于ssd工作負載。

性能取決于ssd“看到”的工作負載——由于ssd的性能是不對稱的,是以了解ssd實際上所看到的工作負載是至關重要的。由于工作負載io流在穿過硬體/軟體堆棧時發生了變化,那麼盡可能靠近存儲捕獲工作負載非常重要。

你的應用程式工作負載可能與供應商的标準工作負載不同——你的ssd設計和優化可能基于一系列供應商選擇的通路模式或與現實世界使用案例不符的工作負載。是以,如果你的ssd針對大型塊順序讀取流量進行了優化,那麼如果你的工作負載實際是由小塊随機寫入流量組成,那麼它的性能就會很差。

每個人都可以從io捕獲,分析和測試中獲益——幾乎所有人都能從了解他們的ssd工作負載中獲益。io捕獲,分析和測試将吸引ssd制造商,設計師,vmware開發人員,故障分析工程師,營銷主管,增值經銷商,系統內建商,it專業人士,顧問,學者,研究人員,分析師,遊戲玩家,發燒友充滿好奇心。

幾乎所有的客戶和企業應用程式都可以從io捕獲,分析和測試裡獲益。許多應用程式将獨特的或計算密集型的工作負載應用于ssd,但我們不知道“淨ssd工作負載”是什麼樣的。無論是使用案例或應用程式,實際的io捕獲可以幫助識别ssd工作負載,并有助于改進ssd設計和優化。

綜合基準 測試與真實世界的工作負載有何差別?

合成基準測試通常使用“四角壓力測試”,由特定的一組通路模式和塊大小/讀/寫(bs/rw)混合組成的。此外,這些工作負載通常應用在一個或多個io流中。

ssd的設計和測試采用極端基準測試,或由較少的使用者應用程式工作負載的粗略估算的io流和base 2整數塊大小(如4k,8k,16k,32k等)。

請參見圖2,顯示單個ssd上的四角環境工作負載。真實世界的工作負載是衆多複雜的io流配置,代表了在多個硬體平台和作業系統上運作的一組幾乎無限的使用者工作負載。

由于真實世界的工作負載與用于制造和優化ssd的工作負載不同,供應商或制造商的性能名額可能與ssd的實際工作負載和性能無關。

什麼是io捕獲?

io捕獲是指你的計算機上發生的io流活動的收集和統計表。io捕獲與io跟蹤和回放不同,因為它沒有從目标計算機收集資料。io捕獲僅識别并計數通路存儲的io數,并收集各種有意義的名額資訊。

io流被列為各種資料傳輸大小和r/w混合的随機或順序通路。名額收集是針對iops速率,吞吐量(mb/s),隊列深度和響應時間,并且根據軟體工具,可以收集更多進階名額,例如lba(邏輯塊尋址),重複資料删除率和壓縮比(有關io捕獲名額的更多讨論,請參見下文)。

io追蹤和重放是指寫入存儲器的二進制資料實際記錄,包括閑置時間,未來可在不同的裝置上重播。io追蹤收集了大量的資料。

這限制了測試周期的實際長度,并将需求強度限制為源捕獲的強度。大型追蹤檔案也讓管理(收集和回放)已建立的超大資料檔案變得困難。

如何捕捉真實世界的工作負載?

公有和私有工具幫助你捕獲真實世界的工作負載io檔案。公有工具諸如用于windows的perfmon(performance monitor)和用于linux的blktrace(block trace),提供用于報告和收集io流量統計資訊的作業系統核心工具,也可以使用諸如calypso io分析器之類的免費工具實作具體的監控和測量存儲io流量目的。io 分析器提供詳細的特定輸出,支援ssd特性和測試。可在testmyworkload.com下載下傳。其他進階度量,資料分析和測試功能可以購買“pro”版本io分析器。

我們在軟體堆棧方面采取io捕獲重要嗎?因為io流在穿過硬體和軟體堆棧(并受到系統緩存和軟體抽象使用的影響)時會發生變化,是以将io流盡可能接近存儲級以便了解真正的ssd工作負載至關重要。在平台和作業系統之間擁有通用的io捕獲工具可以增強不同平台和作業系統之間的工作負載的對比。

io捕獲如何可視化?

擷取io捕獲的原始資料有很多方法——從簡單的資料點值到csv表到關鍵的單一名額繪圖。testmyworkload.com的免費工具利用創新的資料可視化和資料分析工具來顯示ssd存儲規格在豐富的上下文資料儀表闆中捕獲資訊和名額。

io流映射

testmyworkload.com示例3顯示了2000個批發零售網絡伺服器的24小時io捕獲資訊。io流映射顯示了所有在24小時内出現的io流。每個單一io流都用顔色表示,并列為資料系列圖例。io流量度量根據frequency(機率%)或amount transferred(gb)顯示。

流門檻值功能過濾io流,僅顯示構成 所選百分比的io流活動。預設值顯示io流的總數為3%或以上。更改流門檻值将相應更新io映射,lba映射和工作負載分段表。

工作負載分段表标記a,b,c和d的紅線表示所選的工作負載段。工作負載表(見圖5)列出了整個捕獲周期内出現的所有單一io流。在這裡,累加的工作負載顯示3個流,占總io總數的55.1%(163.5gb的5,038個流)。如果流門檻值降低到2%,則将增加2.12%的附加随機8k r流,達到4個io流。時間點,時間段或程序id(見軟體程序id清單)的其他標明工作負載顯示為工作負載a,b和c.

選擇窗格和軟體程序id清單,在使用者窗格中選擇“程序”顯示io

通過軟體程序id捕獲名額。預設視圖顯示作業系統辨別的所有程序。可以選擇特定的程序顯示。在下面的圖6中,windows系統程序被隔離顯示。請注意程序id顯示與特定程序相關的io。然而,所選擇的程序id可能不會顯示與程序相關聯的所有io,因為許多的應用程序可能被包含在更廣泛的系統程序id内。

lba範圍地圖

lba範圍顯示每次io通路由lba(邏輯塊尋址)範圍以百分比表示。 100%lba範圍代表整個使用者可 通路的存儲區域。可以将io流過濾以顯示随機或順序通路。通路的資料量由在lba範圍圖上顯示的氣泡顔色和大小表示。 lba圖顯示每個io流的局部空間和時間并可用于設計或驗證存儲分層政策和軟體層優化。

關鍵的io捕獲名額是什麼?

下面讨論一些關鍵的io捕獲名額。滿足最低百分比門檻值的io流将顯示在io流映射上。io流門檻值可以設定為0.5%至10%,并可通過頻率或數量來檢視。

資料傳輸

在圖7中,每個io流(或資料傳輸)都有獨特的顔色。當工具提示懸停或選擇資料點或段時,會顯示io流詳細資訊。

寫入存儲并訓示寫入存儲的資料可以額外壓縮多少。可以在任何時間點或過程中檢視工作負載的平均值和最大可壓縮比。

重複删除率

重删比率分析寫入存儲的二進制資料,并訓示寫入存儲的資料可以再額外去删重多少。任何時間點或過程都可以檢視重複資料删除率。

本文轉自d1net(轉載)

繼續閱讀