資源供給:IO子系統之一
資源供給:IO子系統
簡單案例描述:
某運營商的OCS實時計費系統實時計費效率不夠,磁碟IO使用率100%。簡單諮詢了下其流程結構:11個並行查詢程式的結果送到一個處理中心進行處理。開發生分析是磁碟IO處理能力不足,處理中心富餘。我問了如果查詢資料每秒100M返回是否可以達到處理效率,回答是肯定的。處理措施非常簡單,改變並行查詢為序列。在開發商簡單修正之後,IO子系統獲得足夠的資料,使處理中心的效率無法支撐。
思考一下,為什麼?在本案的處理中,我甚至都沒有登入系統,登入資料庫,當然也沒有看AWR。IO子系統的資源不是無限的,特別磁碟是一個機械裝置,當超過其負載的時候其響應時間會大幅增加。11個並行查詢將產生1GB/s的讀寫要求,HBA卡,SAN Switch,EMC 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或者磁碟系統的對映。
LV:LVM是磁碟管理系統,使使用者不需要直接和磁碟打交道,同樣的你可以認為LVM是一個字典管理器,完成對映操作。 自然再次降低了響應速度。
HBA卡:HBA卡比較簡單,是一個簡單的通路
SAN Switch:SAN 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,通路的損耗相對較小,一般可以達到其200M和400M的速度,IOPS幾乎僅僅受頻寬的影響,一般可以達到幾十萬甚至幾百萬的效能,很少會出現問題。
SAN交換機:SAN交換機和HBA卡類似,主要是一個通道功能,效能主要還是受限於頻寬。對於SAN交換機來說,一般其頻寬是共享的,比如2G的SAN SWICTH,16口去只提供16GB的總頻寬容量,可能會出現問題。對於儲存系統,永遠不要輸送超過其能力的輸出是一個基本原則。
Disk Array Control:2GB,4GB,比較HBA卡和SAN Switch其損耗較高,大約可以獲得180M和360M左右的吞吐量,大約在10萬左右iops。
Disk array cache:記憶體
Disk:FC Disk,一般順序讀100M,200M,400M左右都速度,寫速度可能要是在60%~70%左右,隨機讀處理速度大幅度下跌,一般在10~20M。Iops一般在150~250之間。可以看到如果僅僅考慮順序讀,Disk將和HBA卡,SAN Switch和Disk Control的效率相當,而我們一般來說一塊FC Disk Control至少要載入10塊以上的磁碟,甚至100多,200多塊磁碟。
檔案系統:檔案系統的引入會大幅度降低處理效能,特別是現代日誌檔案系統對於密集寫應用的殺傷力是很大。其延遲相對時一個變數,依賴於CPU能力。不過在未發生衝突的前提下,其速度相對於磁碟速度還是微不足道的。
LVM:LVM是一個磁碟管理系統,為了方便管理同樣引入了開銷,這個環節的開銷比較檔案系統略小,特別是對於寫操作的效能比較檔案系統帶來更大的好處。事實上,檔案系統基本上都建立在LVM之上。
從效能角度考慮,必須是後續的處理路徑需要強於前面的處理能力,才不會導致阻塞。從投資來說,CPU是最為昂貴的投資,我們需要使後續的所有配置都要強於CPU的配置才可以充分的發揮硬體的效能。
我們以8顆CPU為例子:
8顆CPU:=8*200 = 1600M
4塊4G HBA:4*400 = 1600M
1個或者2個至少容量為1600M的SAN交換機。
至少4塊4Gb的Disk Control,總頻寬容量不低於16GB
假設每塊磁碟15M的吞吐量,至少需要1600/15 = 100塊磁碟。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30633755/viewspace-2127745/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資源供給:IO子系統之二
- 資源供給:IO子系統之三
- 資源供給:IO子系統之五
- 資源供給:IO子系統之七
- 資源供給:併發性控制和mutex之一Mutex
- 【IO】IO系統效能之一:衡量效能的幾個指標指標
- MySQL 引擎特性:InnoDB IO 子系統MySql
- 給源系統分配一個源系統ID
- Linux 效能優化之 IO 子系統Linux優化
- 貨源供應鏈管理系統案例
- 資源供給:併發性控制和mutex之二Mutex
- 資源供給:併發性控制和mutex之三Mutex
- 電子元器件供應鏈管理系統:降低管理成本,提升供應鏈系統效率
- 資源供給:記憶體和虛擬記憶體記憶體
- 資源供給:再談記憶體和虛擬記憶體記憶體
- 常用系統io
- 企業供應商採購系統,實現電子採購管理系統平臺資料、資訊共享
- Qt 資源系統QT
- Linux優化之IO子系統監控與調優Linux優化
- SAP MM 系統確定供應源優先順序
- Java的IO系統Java
- 標準io和系統io的辨析
- 共享資源庫系統
- 電商供應鏈管理系統貨源對接開發流程
- .NET 8.0 開源線上考試系統(支援移動端)io
- [作業系統]阻塞io 非阻塞io Epoll作業系統
- 初探pinctrl子系統和GPIO子系統
- Linux系統磁碟IOLinux
- java的io系統(轉)Java
- 電子元器件SRM供應商協同管理系統招投標功能助力企業高效尋源採購
- gpio子系統與pinctrl子系統通用APIAPI
- 人力資源管理系統1.0
- 檢視系統資源資訊
- AIX系統資源檢測AI
- 系統管理員資源大全
- 物流資料來源系統
- 靈通財務軟體總帳子系統需求規格書之一 (轉)
- SAP 輸出資料給LIMS系統