設(shè)置 DB2 與AIX條帶技術(shù)匹配來對I/O性能進行提高
文章主要描述的是正確設(shè)置 DB2 數(shù)據(jù)庫與 AIX 條帶技術(shù)匹配來對 I/O 性能進行提高的實際操作步驟,我們大家都知道條帶化技術(shù),其是一種廣泛使用的 I/O 負載均衡技術(shù),可以在不增加額外硬件投入的情況下極大的提高 I/O 性能。
但是在使用了這種技術(shù)的環(huán)境中,只有對數(shù)據(jù)庫和操作系統(tǒng)的 I/O 處理有良好的規(guī)劃和設(shè)置,使其與條帶化技術(shù)相匹配,才能使 I/O 的性能達到***。本文針對這個主題,以 DB2 數(shù)據(jù)庫和 AIX 操作系統(tǒng)為例,介紹了如何規(guī)劃和設(shè)置好相關(guān)的內(nèi)容。
條帶化技術(shù)是一種廣泛使用的 I/O 負載均衡技術(shù),可以在不增加額外硬件投入的情況下極大的提高 I/O 性能。但是在使用了這種技術(shù)的環(huán)境中,只有對數(shù)據(jù)庫和操作系統(tǒng)的 I/O 處理有良好的規(guī)劃和設(shè)置,使其與條帶化技術(shù)相匹配,才能使 I/O 的性能達到***。本文針對這個主題,以 DB2 數(shù)據(jù)庫和 AIX 操作系統(tǒng)為例,介紹了如何規(guī)劃和設(shè)置好相關(guān)的內(nèi)容。
下面我們分如下幾個方面來介紹:
條帶化技術(shù)介紹
在 DB2 中合理規(guī)劃和設(shè)置DB2 數(shù)據(jù)庫條帶有關(guān)參數(shù)
在 AIX 中合理規(guī)劃和設(shè)置條帶有關(guān)參數(shù)
總結(jié)
條帶化技術(shù)介紹
條帶技術(shù)簡介及應(yīng)用
當(dāng)多個進程同時訪問一個磁盤時,可能會出現(xiàn)磁盤沖突。大多數(shù)磁盤系統(tǒng)都對訪問次數(shù)(每秒的 I/O 操作,IOPS)和數(shù)據(jù)傳輸率(每秒傳輸?shù)臄?shù)據(jù)量,TPS)有限制。當(dāng)達到這些限制時,后面需要訪問磁盤的進程就需要等待,這時就是所謂的磁盤沖突。
避免磁盤沖突是優(yōu)化 I/O 性能的一個重要目標(biāo),而 I/O 性能的優(yōu)化與其他資源(如 CPU 和內(nèi)存)的優(yōu)化有著很大的區(qū)別 ,I/O 優(yōu)化最有效的手段是將 I/O ***限度的進行平衡。這就需要將一個熱點磁盤上的 I/O 訪問負載分擔(dān)到其他相對空閑的磁盤上,也就是 I/O 負載均衡。
在一些成熟的磁盤負載均衡技術(shù)出現(xiàn)之前,DBA 需要了解、預(yù)測各系統(tǒng)的 I/O 負載量,通過手工配置每個數(shù)據(jù)到不同存放位置以分擔(dān) I/O 負載來達到負載均衡的目的。
條帶化技術(shù)就是一種自動的將 I/O 的負載均衡到多個物理磁盤上的技術(shù),條帶化技術(shù)就是將一塊連續(xù)的數(shù)據(jù)分成很多小部分并把他們分別存儲到不同磁盤上去。這就能使多個進程同時訪問數(shù)據(jù)的多個不同部分而不會造成磁盤沖突,而且在需要對這種數(shù)據(jù)進行順序訪問的時候可以獲得***程度上的 I/O 并行能力,從而獲得非常好的性能。
很多操作系統(tǒng)、磁盤設(shè)備供應(yīng)商、各種第三方軟件都能做到條帶化。通過條帶化,DBA 可以很輕松的做到 I/O 負載均衡而無需去手工配置。
圖 1 描述的是一個未經(jīng)條帶化處理的連續(xù)數(shù)據(jù)的分布,圖 2 描述的是一個已經(jīng)被條帶化處理的連續(xù)數(shù)據(jù)的分布,從中比較,我們可以發(fā)現(xiàn)圖 2 中對連續(xù)數(shù)據(jù)的讀寫都有***的并發(fā)能力。
圖 1. 未經(jīng)條帶化處理的連續(xù)數(shù)據(jù)
圖 2. 已經(jīng)被條帶化處理的連續(xù)數(shù)據(jù)
由于條帶化在 I/O 性能問題上的優(yōu)越表現(xiàn),以致于在應(yīng)用系統(tǒng)所在的計算環(huán)境中的多個層次或平臺都涉及到了條帶化的技術(shù),如操作系統(tǒng)和存儲系統(tǒng)這兩個層次中都可能使用條帶化技術(shù)。下圖展示了這兩個層次的 I/O 結(jié)構(gòu)。
圖 3.操作系統(tǒng)和存儲系統(tǒng)兩個層次的 I/O 結(jié)構(gòu)
在操作系統(tǒng)的層次中,我們可以使用軟件條帶(如 LVM 中 LV 的條帶來實現(xiàn)條帶化技術(shù))或硬件條帶(如各種 RAID)。在存儲系統(tǒng)層次中,目前市場上絕大部分產(chǎn)品都提供了各種各樣的條帶技術(shù)(如各種 RAID)。#p#
條帶化的設(shè)置
當(dāng)使用 LVM 或者硬件條帶化時,決定條帶化效果的因素是條帶深度(stripe depth)和條帶寬度(stripe width):
條帶深度指的是條帶塊的大小,也叫條帶單元;
條帶寬度指的是條帶深度的產(chǎn)量或者一個條帶分布的驅(qū)動數(shù);
需要根據(jù)系統(tǒng)的 I/O 要求來合理的選擇這些設(shè)置DB2 數(shù)據(jù)庫。對于數(shù)據(jù)庫系統(tǒng)來說,比較合理的條帶深度是從 256K 到 1M 。下面分析一下條帶深度和條帶寬度的影響因素。
條帶深度
為了提高 I/O 效率,一次邏輯 I/O 請求轉(zhuǎn)化成物理 I/O 請求后,應(yīng)該讓這些物理 I/O 分布到最多的物理磁盤上去,也就是每個物理磁盤處理的物理 I/O 最少,***只有一次 , 因而影響條帶的一個重要因素就是一次邏輯 I/O 請求的大小。
此外,系統(tǒng)中 I/O 的并發(fā)度不同我們對條帶的配置要求也不同。例如,在高并發(fā)度且邏輯 I/O 請求的大小都比較小的情況下,我們希望一塊磁盤能同時響應(yīng)多個 I/O 請求;而在那些存在大的邏輯 I/O 請求的低并發(fā)度系統(tǒng)中,我們可能就需要多塊磁盤同時響應(yīng)一個 I/O 請求。無論是一個磁盤還是多個磁盤響應(yīng) I/O 請求,我們的一個原則是讓一次邏輯 I/O 能被物理設(shè)備一次處理完成。
條帶寬度
正如我們前面所述,無論是一個還是多個磁盤響應(yīng)一個邏輯 I/O,我們都希望物理設(shè)備只處理一次 I/O 。因而在確定了條帶深度的基礎(chǔ)上,我們需要保證條帶寬度 >= I/O 請求的大小 / 條帶深度。這樣就能***程度的保證 I/O 請求的并發(fā)處理能力了。
此外,考慮到以后系統(tǒng)容量的擴充,我們也需要規(guī)劃好條帶寬度,以上的相關(guān)內(nèi)容就是對設(shè)置 DB2 數(shù)據(jù)庫和 AIX 與條帶技術(shù)匹配以提高 I/O 性能的介紹,望你能有所收獲。
完整內(nèi)容的學(xué)習(xí),請訪問:
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0812yuancg/
【編輯推薦】
- DB2 V8數(shù)據(jù)庫系統(tǒng)轉(zhuǎn)移的實現(xiàn)很簡單!
- 在AIX環(huán)境下DB2許可證問題如何是好?
- DB2 For z/OS or OS/390性能如何正確管理?
- IBM DB2中新手要了解的東西有哪些?
- DB2數(shù)據(jù)庫物化視圖之MQT物化查詢表如何操作?