資源供給:IO子系統之一

yuntui發表於2016-11-03

資源供給:IO子系統

 

簡單案例描述:

某運營商的OCS實時計費系統實時計費效率不夠,磁碟IO使用率100%。簡單諮詢了下其流程結構:11個並行查詢程式的結果送到一個處理中心進行處理。開發生分析是磁碟IO處理能力不足,處理中心富餘。我問了如果查詢資料每秒100M返回是否可以達到處理效率,回答是肯定的。處理措施非常簡單,改變並行查詢為序列。在開發商簡單修正之後,IO子系統獲得足夠的資料,使處理中心的效率無法支撐。

思考一下,為什麼?在本案的處理中,我甚至都沒有登入系統,登入資料庫,當然也沒有看AWRIO子系統的資源不是無限的,特別磁碟是一個機械裝置,當超過其負載的時候其響應時間會大幅增加。11個並行查詢將產生1GB/s的讀寫要求,HBA卡,SAN SwitchEMC DMX4000都無法支撐如此巨大的資料庫吞吐要求,IO子系統被塞死,響應時間大幅延遲。

 

IO子系統從效能最佳化的角度而言是最重要的資源,原因非常簡單,IO子系統是系統主要處理構件中響應時間最差的部分,必須不斷的最佳化使其可以和記憶體效率匹配。換句話說,從最佳化的角度,我們需要做以下幾件事情:

1)、我們需要讓記憶體做更多的事情。

2)、磁碟系統自身進行大量的快取,同樣是為了讓記憶體做更多的事情。

3)、磁碟系統自身要提高足夠的吞吐量以支援短時間的緩衝失效。

 

我們來看看Oracle資料庫的IO相關流程,假設為SAN儲存架構:

Oracle Memory(Host memory) à Filesystem(LV) à HBA à SAN Switch à Array Disk Control à Array Buffer à Disk,以上鍊路中任何一個鏈路出現問題都會導致IO響應被延遲。

我們再來看看整個鏈路的速度:

 

Oracle memory(Host memory): 10ns~50ns

Filesystem: 通路,依賴於CPU能量的效率,穿過檔案系統估計響應時間估計至少會從ns延遲到us級別。說的簡單些,檔案系統就是一個字典管理器,完成和lvm或者磁碟系統的對映。

LVLVM是磁碟管理系統,使使用者不需要直接和磁碟打交道,同樣的你可以認為LVM是一個字典管理器,完成對映操作。 自然再次降低了響應速度。

HBA卡:HBA卡比較簡單,是一個簡單的通路

SAN SwitchSAN swicth也比較簡單,表現為一個簡單的通路,特別在交換式結構中。

Disk Array control:磁碟系統的控制器,不僅僅是一個通路,在磁碟系統內部實現磁碟管理。

Disk Array cache: Disk, Array cache是磁碟系統效能的重要保證之一,使使用者不需要訪問磁碟就可以獲得資料,使使用者程式不需要等待直接寫到磁碟就可以認為寫操作完成。

Disk: Disk是資料的最終載體,最終的寫入資料需要儲存到這裡,最初的獲取資料需要從這裡獲取。

 

作為最佳化者,我們需要大致瞭解各個部件的狀況,不需要很精確。我們需要知道,任何IT資源裝置在達到資源限制的時候,其響應時間將大幅度降低。

 

 

CPU:一般每個CPU處理200M以上的資料,其頻寬在6.4G以上

記憶體:50ns,一般完成完整的迴圈處理之後大約在us~20us,頻寬一般在6.4GB以上。

HBA卡:2GB或者4GB,通路的損耗相對較小,一般可以達到其200M400M的速度,IOPS幾乎僅僅受頻寬的影響,一般可以達到幾十萬甚至幾百萬的效能,很少會出現問題。

SAN交換機:SAN交換機和HBA卡類似,主要是一個通道功能,效能主要還是受限於頻寬。對於SAN交換機來說,一般其頻寬是共享的,比如2GSAN  SWICTH16口去只提供16GB的總頻寬容量,可能會出現問題。對於儲存系統,永遠不要輸送超過其能力的輸出是一個基本原則。

Disk Array Control2GB,4GB,比較HBA卡和SAN Switch其損耗較高,大約可以獲得180M360M左右的吞吐量,大約在10萬左右iops

Disk array cache:記憶體

DiskFC Disk,一般順序讀100M,200M,400M左右都速度,寫速度可能要是在60%~70%左右,隨機讀處理速度大幅度下跌,一般在10~20MIops一般在150~250之間。可以看到如果僅僅考慮順序讀,Disk將和HBA卡,SAN SwitchDisk Control的效率相當,而我們一般來說一塊FC Disk Control至少要載入10塊以上的磁碟,甚至100多,200多塊磁碟。

檔案系統:檔案系統的引入會大幅度降低處理效能,特別是現代日誌檔案系統對於密集寫應用的殺傷力是很大。其延遲相對時一個變數,依賴於CPU能力。不過在未發生衝突的前提下,其速度相對於磁碟速度還是微不足道的。

LVMLVM是一個磁碟管理系統,為了方便管理同樣引入了開銷,這個環節的開銷比較檔案系統略小,特別是對於寫操作的效能比較檔案系統帶來更大的好處。事實上,檔案系統基本上都建立在LVM之上。

 

 

從效能角度考慮,必須是後續的處理路徑需要強於前面的處理能力,才不會導致阻塞。從投資來說,CPU是最為昂貴的投資,我們需要使後續的所有配置都要強於CPU的配置才可以充分的發揮硬體的效能。

 

我們以8CPU為例子:

8CPU=8*200 = 1600M

44G HBA4*400 = 1600M

1個或者2個至少容量為1600MSAN交換機。

至少44GbDisk Control,總頻寬容量不低於16GB

假設每塊磁碟15M的吞吐量,至少需要1600/15 = 100塊磁碟。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30633755/viewspace-2127745/,如需轉載,請註明出處,否則將追究法律責任。

相關文章