文章主要描述的是正確設置 DB2 數據庫與 AIX 條帶技術匹配來對 I/O 性能進行提高的實際操作步驟,我們大家都知道條帶化技術,其是一種廣泛使用的 I/O 負載均衡技術,可以在不增加額外硬件投入的情況下極大的提高 I/O 性能。
但是在使用了這種技術的環境中,只有對數據庫和操作系統的 I/O 處理有良好的規劃和設置,使其與條帶化技術相匹配,才能使 I/O 的性能達到最好。本文針對這個主題,以 DB2 數據庫和 AIX 操作系統為例,介紹了如何規劃和設置好相關的內容。
條帶化技術是一種廣泛使用的 I/O 負載均衡技術,可以在不增加額外硬件投入的情況下極大的提高 I/O 性能。但是在使用了這種技術的環境中,只有對數據庫和操作系統的 I/O 處理有良好的規劃和設置,使其與條帶化技術相匹配,才能使 I/O 的性能達到最好。本文針對這個主題,以 DB2 數據庫和 AIX 操作系統為例,介紹了如何規劃和設置好相關的內容。
下面我們分如下幾個方面來介紹:
條帶化技術介紹
在 DB2 中合理規劃和設置DB2 數據庫條帶有關參數
在 AIX 中合理規劃和設置條帶有關參數
總結
條帶化技術介紹
條帶技術簡介及應用
當多個進程同時訪問一個磁盤時,可能會出現磁盤沖突。大多數磁盤系統都對訪問次數(每秒的 I/O 操作,IOPS)和數據傳輸率(每秒傳輸的數據量,TPS)有限制。當達到這些限制時,後面需要訪問磁盤的進程就需要等待,這時就是所謂的磁盤沖突。
避免磁盤沖突是優化 I/O 性能的一個重要目標,而 I/O 性能的優化與其他資源(如 CPU 和內存)的優化有著很大的區別 ,I/O 優化最有效的手段是將 I/O 最大限度的進行平衡。這就需要將一個熱點磁盤上的 I/O 訪問負載分擔到其他相對空閒的磁盤上,也就是 I/O 負載均衡。
在一些成熟的磁盤負載均衡技術出現之前,DBA 需要了解、預測各系統的 I/O 負載量,通過手工配置每個數據到不同存放位置以分擔 I/O 負載來達到負載均衡的目的。
條帶化技術就是一種自動的將 I/O 的負載均衡到多個物理磁盤上的技術,條帶化技術就是將一塊連續的數據分成很多小部分並把他們分別存儲到不同磁盤上去。這就能使多個進程同時訪問數據的多個不同部分而不會造成磁盤沖突,而且在需要對這種數據進行順序訪問的時候可以獲得最大程度上的 I/O 並行能力,從而獲得非常好的性能。
很多操作系統、磁盤設備供應商、各種第三方軟件都能做到條帶化。通過條帶化,DBA 可以很輕松的做到 I/O 負載均衡而無需去手工配置。
圖 1 描述的是一個未經條帶化處理的連續數據的分布,圖 2 描述的是一個已經被條帶化處理的連續數據的分布,從中比較,我們可以發現圖 2 中對連續數據的讀寫都有最大的並發能力。
圖 1. 未經條帶化處理的連續數據
圖 2. 已經被條帶化處理的連續數據
由於條帶化在 I/O 性能問題上的優越表現,以致於在應用系統所在的計算環境中的多個層次或平台都涉及到了條帶化的技術,如操作系統和存儲系統這兩個層次中都可能使用條帶化技術。下圖展示了這兩個層次的 I/O 結構。
圖 3.操作系統和存儲系統兩個層次的 I/O 結構
在操作系統的層次中,我們可以使用軟件條帶(如 LVM 中 LV 的條帶來實現條帶化技術)或硬件條帶(如各種 RAID)。在存儲系統層次中,目前市場上絕大部分產品都提供了各種各樣的條帶技術(如各種 RAID)。