【虛擬化實戰】存儲設計之七Block Size

作者:範軍 (Frank Fan)新浪微博:@frankfan7   微信:GetToCloud

實戰存儲設計之六Latnecy我們介紹Latency過高的原因和一些建議。本文重點分析Block Size對性能特別是latency的影響。

什麼是Block Size

Block Size這個詞在不同的語境中有不同含義。在此文中指的是在OS中運行的應用發出一個IO讀或寫請求所傳送的數據單元的大小。無論你採用傳統存儲架構,還是融合,超融合等架構,IOBlock Size對性能都有影響。

如同下圖所示,一個IO請求比如搬一塊磚,磚塊的大小對整個存儲架構中的很多組件的負荷都有影響。比如HBA,存儲交換機,存儲系統的CPU等等,當然存儲介質本身對不同磚塊的處理能力也不同。

wKioL1cEoGij2HlnAAARPhsetI8687.png


上圖摘自博客vmpete.com

爲什麼Block Size對存儲性能有很大影響?

Throughput的影響:

Throught =  IOPsx  Block size

同樣是10IOPs256K blocks 需要傳輸的數據是4K Blocks 64倍!那麼自然會對存儲網路的帶寬以及存儲控制器的CPU消耗都有影響。

時延Latency的影響

wKioL1cEoHDCU82RAAHmy2oQJRU395.png

 

上圖摘自vmpete.com。 這是在採用存儲性能分析軟件PernixData  Architect之後,顯示了不同Block SizeLantency的影響。可見當Block Size大於64K時對Lantency的影響最大。


如何來應對大數據塊IO帶來的挑戰呢?

以前沒有工具或簡單的方法可以很好了解應用產生的Block Size。而且在常規存儲設計中,並沒有太多顧及到應用產生的Block Size, 往往是根據一些假設條件來做出設計決定。即使在存儲陣列中採用閃存,其實並不能減少。大數據塊IOHBA,存儲網絡以及存儲控制器產生的負荷。並且我們發現常規SSD硬盤處理大數據塊IO的性能並不理想。


利用IO BlockSize真實案例:

案例一:

某客戶發現應用性能下降,經排錯發現大數據塊IOLatency的影響極大。在不對後臺存儲有任何改變的情況下,採用PernixData FVP軟件和服務器端NVMe PCI閃存對存儲性能加速。極大的降低了大數據塊IOLatency的影響。注意該用戶才用NVMe PCI閃存而不是常規SSD Drive。因爲常規SSD硬盤處理大數據塊IO的應能並不好。

案例二:

某客戶發現很多應用的性能下降。經排錯發現某SQL虛擬機產生非常多的大數據塊IO,對該SQL優化後問題解決。

案例三:

某雲服務提供商在所有虛擬機中設置 Disk IO Limit以防止共享環境中某些虛擬過度佔用存儲資源。vSphere 5.5以後對mclock diskscheduler 作了更改,對於block size 大於32KIO,從Disk IO limit這個角度上講,不在認爲該IO只是一個IO.   比如 256K blockSize IO 會被認爲是8IO

瞭解應用Block Size的大致情況,會對更好的設置Disk IOLimit有很大幫助。


Reference:

Viewing the impact of block sizes with PernixData Architect

Limit a VM from an IOps perspective


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章