您好,登錄后才能下訂單哦!
作者:范軍 (Frank Fan)新浪微博:@frankfan7 微信:GetToCloud
在實戰存儲設計之六Latnecy我們介紹Latency過高的原因和一些建議。本文重點分析Block Size對性能特別是latency的影響。
什么是Block Size?
Block Size這個詞在不同的語境中有不同含義。在此文中指的是在OS中運行的應用發出一個IO讀或寫請求所傳送的數據單元的大小。無論你采用傳統存儲架構,還是融合,超融合等架構,IOBlock Size對性能都有影響。
如同下圖所示,一個IO請求比如搬一塊磚,磚塊的大小對整個存儲架構中的很多組件的負荷都有影響。比如HBA,存儲交換機,存儲系統的CPU等等,當然存儲介質本身對不同磚塊的處理能力也不同。
上圖摘自博客vmpete.com
為什么Block Size對存儲性能有很大影響?
對Throughput的影響:
Throught = IOPsx Block size
同樣是10IOPs,256K blocks 需要傳輸的數據是4K Blocks 的64倍!那么自然會對存儲網路的帶寬以及存儲控制器的CPU消耗都有影響。
對時延Latency的影響
上圖摘自vmpete.com。 這是在采用存儲性能分析軟件PernixData Architect之后,顯示了不同Block Size對Lantency的影響。可見當Block Size大于64K時對Lantency的影響最大。
如何來應對大數據塊IO帶來的挑戰呢?
以前沒有工具或簡單的方法可以很好了解應用產生的Block Size。而且在常規存儲設計中,并沒有太多顧及到應用產生的Block Size, 往往是根據一些假設條件來做出設計決定。即使在存儲陣列中采用閃存,其實并不能減少。大數據塊IO對HBA,存儲網絡以及存儲控制器產生的負荷。并且我們發現常規SSD硬盤處理大數據塊IO的性能并不理想。
利用IO BlockSize真實案例:
案例一:
某客戶發現應用性能下降,經排錯發現大數據塊IO對Latency的影響極大。在不對后臺存儲有任何改變的情況下,采用PernixData FVP軟件和服務器端NVMe PCI閃存對存儲性能加速。極大的降低了大數據塊IO對Latency的影響。注意該用戶才用NVMe PCI閃存而不是常規SSD Drive。因為常規SSD硬盤處理大數據塊IO的應能并不好。
案例二:
某客戶發現很多應用的性能下降。經排錯發現某SQL虛擬機產生非常多的大數據塊IO,對該SQL優化后問題解決。
案例三:
某云服務提供商在所有虛擬機中設置 Disk IO Limit,以防止共享環境中某些虛擬過度占用存儲資源。vSphere 5.5以后對mclock diskscheduler 作了更改,對于block size 大于32K的IO,從Disk IO limit這個角度上講,不在認為該IO只是一個IO. 比如 256K blockSize IO 會被認為是8個IO。
了解應用Block Size的大致情況,會對更好的設置Disk IOLimit有很大幫助。
Reference:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。