資料庫叢集伺服器系統效能瓶頸分析(zt)
1.引言
資料庫叢集伺服器產品採用叢集作為基礎的體系架構。由於資料
庫叢集伺服器平臺上部署的是Oracle RAC 資料庫, 所以我們就從
Oracle RAC 資料庫的通訊機制開始分析。RAC 作為Oracle 資料庫的
一個元件是從Oracle 9i 版本開始的, 其目的是最大限度的挖掘叢集
這一體系架構的潛力。在RAC 通訊機制中, 為了更多的消除磁碟IO
對系統效能的影響, Oracle RAC 通過一個叫Cache Fusion( 快取融合)
的機制, 即依靠軟體自身的機制來把各個節點的資料庫記憶體虛擬成一
個大的共享記憶體供Oracle 使用。
簡單而言, 資料庫軟體就是提供了一種對資料進行操作的平臺,
因而資料在磁碟、記憶體、處理器之間移動過程中所產生的瓶頸也是最
終系統體現出來的瓶頸。對於Oracle RAC 而言, 是如何對資料進行訪
問和操作的呢? 在RAC 節點相互通訊過程中, 某一正在工作的處理器
首先從自己節點所在記憶體讀寫資料, 如沒有會通過高速互連通道向其
他節點記憶體讀寫( 程式間通訊IPC) , 最後才向共享磁碟讀寫。這種數
據訪問順序的採用是因為從記憶體讀取資料的延遲要低於從其他節點
記憶體讀取資料的延遲, 而從其它節點讀取資料的延遲要低於從共享磁
盤讀取資料的延遲。這裡涉及到幾個關鍵的因素, 即記憶體訪問、程式間
通訊、磁碟IO 訪問, 下面將對這幾個因素逐一加以分析。
2.記憶體訪問
我們知道, 在資料庫訪問過程中, 資料是先從磁碟空間讀入記憶體,
然後供CPU 來調配使用的, 因而記憶體空間越大, 需要訪問的資料就能
更多的放在記憶體中, 從而提高實際的資料訪問處理速度。造成記憶體訪
問空間限制的原因在於對記憶體定址空間的限制, 在資料庫叢集伺服器
中, 節點採用的是32 位Xeon 處理器, 作業系統的有效記憶體定址空間
為4G, 除去作業系統自身所佔資源, 供Oracle 所支配的記憶體空間也就
在2G 左右。
為打消由於記憶體空間引起的系統瓶頸, 通常記憶體為滿配, 即以單
條最大容量的記憶體插滿伺服器的記憶體槽。以IA 架構伺服器的TPC- H
測試為例, IA 架構伺服器產品有16 個記憶體槽, 因而配置了16 個2G
的記憶體條, 整個系統記憶體空間達32G。但前提是系統支援64 位定址
( SP3000 採用64 位安騰處理器, 支援64 位定址空間) , 在32 位處理
器系統上就無能為力了。
不過記憶體訪問空間的瓶頸現在已經得到解決, 在Intel 推出Xeon
EM64T 之後, 對記憶體的定址空間突破了4G 的限制, 從而作業系統和
資料庫軟體就不存在記憶體支配空間的限制了。未來資料庫叢集伺服器
的節點記憶體將不再受限於4G 空間的限制, 將在一定程度上緩解由於
記憶體空間限制而引起的系統效能瓶頸的產生。
3.程式間通訊
從Oracle RAC 資料庫節點間的通訊機制可以看出, 資料需要頻
繁的通過高速互連裝置進行互動, 因而高速互連裝置效能的好壞也是
影響Oracle RAC 效能提升的主要瓶頸之一。目前比較常見的是採用
千兆乙太網作為RAC 節點間的高速互連裝置, 但從實際執行的情況
來看, 效能指標並不理想, 甚至出現了採用RAC 叢集系統的效能甚至
比採用單機的效能還要低的現象。由於RAC 節點間通訊機制是以
UDP 協議為基礎開發的, 而UDP/IP 協議棧的通訊延遲較高, 隨著
RAC 節點數目的增加, 節點間頻繁的通訊會導致Oracle RAC 資料庫
整體效能急劇下降, 所以尋求具有更高通訊效能的高速互連網路或協
議成為改善Oracle RAC 效能的手段之一, 而Oracle 公司為此問題的
解決也在做著不懈的努力。
InfiniBand 技術的出現使得RAC 通訊效能的明顯改善成為了可
能。Infiniband 技術的最大的特點就是擁有較高的通訊頻寬和較低的
通訊延遲, 在InfiniBand 的幾個本地協議中, uDAPL 協議是效率最高
的, 其頻寬高達6.4Gb/s, 延遲低至8us( 2004 年資料) , 但需要上層應用依據此協議重新改寫, 對於Oracle 這樣的資料庫系統, 工作量之大
可想而知。
與此同時, 基於InfiniBand 技術的另一個協議—— RDS 協議, 逐
漸得到了Oracle 的青睞。RDS 協議的全稱為Reliable Datagram
Sockets, 在InfiniBand 技術框架中是為取代UDP 協議而產生的( 正如
SDP 協議取代TCP 協議一樣) 。通過採用RDS 協議, Oracle RAC 資料
庫僅需改寫很少部分程式碼即可, 與uDAPL 協議相比, RDS 協議的效能
比前者略有降低( 5%左右) , 但卻極大的簡化了Oracle RAC 的開發工
作。經過前後5 個月的短暫時間, Oracle 即完成了基於RDS 協議的開
發和穩定性測試等工作, 在即將釋出的Oracle RAC 10.2.0.2 版本中,
將會實現對RDS 協議的全面支援。
採用RDS 協議後, 系統效能到底提升到什麼程度呢? 採用RDS 協
議後, 節點間通訊效能確有明顯的提高: 與千兆乙太網互連( TCP/IP)
相比, 節點資料吞吐量提高了一倍, 與此同時CPU 利用率和節點通訊
物理延遲降低了一倍。
4.磁碟IO 訪問
從過去20 年間到現在, CPU 處理速度增加了570 倍,而硬碟速度
僅增加了20 倍, 儲存系統的硬碟容量增長幅度遠大於硬碟轉速的增
長, 使硬碟單位容量的I/O 效能越來越低, 磁碟IO 效能已經成為嚴重
制約系統效能提升的瓶頸。伴隨著資料庫應用的快速發展、業務和數
據庫使用者的逐年擴大導致的併發容量暴增給本來已經是系統瓶頸的
儲存系統雪上加霜, 即使不斷的採取措施優化裝置, 無非是想自己的
硬碟轉得快一點, 但到最後還是收效甚微。
為了最大限度的降低磁碟IO 訪問瓶頸, 通常是採用增加磁碟數
量的方式, 以提高磁碟IO 的並行訪問效率。單純的增加磁碟的轉速以
提高IO 訪問效能, 或者增加磁碟數量提高並行訪問效率的做法, 都有
一定的侷限性。到底該如何解決儲存系統效能問題呢?
近幾年來, 電子儲存裝置Solid State Disk(固態磁碟)的出現為解
決這一技術難題提供了有效的解決方案, 並已經呈現出有逐步取代傳
統磁介質儲存裝置(機械裝置)的趨勢。SSD 採用DDRRAM作為儲存介
質、仿效傳統磁碟驅動器的設計、可被各種作業系統的檔案系統工具
進行卷設定和管理, 並提供工業標準的PCI 和FC 介面用於連線主機/
伺服器或儲存網路的儲存裝置, 可分為SSD 驅動器和SSD 盤陣列二
大塊, 是一種真正高效能的儲存。
固態硬碟丟棄了傳統硬碟的機械特性, 資料查詢時間、延遲時間
和尋道時間幾乎為零。眾所周知, 磁碟訪問時間=指令到達時間+尋道
時間+命中時間+機械延遲, 而硬碟的機械特性嚴重限制了資料輸入輸
出的效能。採用SSD 方式的固態硬碟, 效能要好於HDD 硬碟100 倍
以上, 效能提升非常明顯。
5.結束語
記憶體訪問、程式間通訊、磁碟IO 訪問三種因素所產生的硬體瓶頸
構成了Oracle RAC 資料庫整體效能的瓶頸, Intel EM64T 體系架構的
晶片組、高頻寬低延遲的互聯裝置以及固態硬碟的出現已經使系統性
能大大提升。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756652/viewspace-485740/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LightDB資料庫效能瓶頸分析(一)資料庫
- 在Linux中,如何進行系統效能瓶頸分析?Linux
- SQL Server 資料庫 最佳化 效能瓶頸SQLServer資料庫
- 效能分析(6)- 如何迅速分析出系統 CPU 的瓶頸在哪裡
- oracle快速定位資料庫瓶頸Oracle資料庫
- 宜信資料庫實踐|解讀Oracle AWR效能分析報告,更快定位效能瓶頸資料庫Oracle
- 用資料說話,億級海量資料分析效能瓶頸如何破?
- 利用PerfDog分析遊戲效能瓶頸遊戲
- Chrome執行時效能瓶頸分析Chrome
- Linux命令----分析系統I/O的瓶頸Linux
- 如何解決SQL Server資料庫的軟硬體效能瓶頸OCSQLServer資料庫
- 效能測試-服務端瓶頸分析思路服務端
- 2020.10.6 效能課堂筆記-cpu 瓶頸分析筆記
- 4篇論文入選資料庫頂會,騰訊雲突破資料庫效能瓶頸資料庫
- 如何迅速分析出系統CPU的瓶頸在哪裡?
- 伺服器IO瓶頸對MySQL效能的影響伺服器MySql
- NVMe儲存效能瓶頸的主要來源:檔案系統
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- 效能測試瓶頸調優
- 2020.10.8 效能課堂筆記-記憶體瓶頸分析筆記記憶體
- 擴充套件資源伺服器解決oauth2 效能瓶頸套件伺服器OAuth
- 應用系統瓶頸排查和分析的思考-Arthas 實戰
- 打破儲存效能瓶頸,杉巖資料為AI提速增效AI
- 效能測試瓶頸之CPU問題分析與調優
- 淺談高效能資料庫叢集——分庫分表資料庫
- 如何正確定義效能瓶頸
- 用 pprof 找出程式碼效能瓶頸
- 杉巖資料物件儲存替換IBM FileNet,突破效能瓶頸物件IBM
- 解決資料庫高併發訪問瓶頸問題資料庫
- 效能優化資料庫篇-從單機到叢集優化資料庫
- Oracle叢集檔案系統(OCFS2)使用者指南(zt)Oracle
- JVM 效能調優實戰之:一次系統效能瓶頸的尋找過程JVM
- 效能課堂-TPS 瓶頸精準定位
- 【資料庫】Redis叢集篇資料庫Redis
- 軟體測試:瓶頸分析方法
- 如何使用 Wireshark 分析 TCP 吞吐瓶頸TCP
- AI系統有助突破醫藥研發瓶頸AI
- 重啟資料庫叢集伺服器( 主庫伺服器/備庫伺服器 )步驟資料庫伺服器