久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

db2緩沖池問題的診斷及優(yōu)化

 星月晨光 2010-06-24
背景知識
緩沖池是內(nèi)存中的一塊存儲區(qū)域,用于臨時讀入和更改數(shù)據(jù)庫頁(包含表行或索引項),。緩沖池的用途是為了提高數(shù)據(jù)庫系統(tǒng)的性能,。從內(nèi)存訪問數(shù)據(jù)要比從磁盤訪問數(shù)據(jù)快得多。因此,,數(shù)據(jù)庫管理器需要從磁盤讀取或?qū)懭氪疟P的次數(shù)越少,,性能就越好。對一個或多個緩沖池進行配置之所以是調(diào)優(yōu)的最重要方面,,是因為連接至數(shù)據(jù)庫的應用程序的大多數(shù)數(shù)據(jù)(不包括大對象和長字段數(shù)據(jù))操作都在緩沖池中進行,。

缺省情況下,應用程序使用緩沖池 IBMDEFAULTBP,,它是在創(chuàng)建數(shù)據(jù)庫時創(chuàng)建的,。當 SYSCAT.BUFFERPOOLS 目錄表中該緩沖池的 NPAGES 值為 -1 時,DB2 數(shù)據(jù)庫配置參數(shù) BUFFPAGE 控制著緩沖池的大小,。否則會忽略 BUFFPAGE 參數(shù),,并且用 NPAGES 參數(shù)所指定的頁數(shù)創(chuàng)建緩沖池。

建議
對于僅使用一個緩沖池的應用程序,,將 NPAGES 更改成 -1,,這樣 BUFFPAGE 就可以控制該緩沖池的大小,。這使得更新和報告緩沖池大小以及其它 DB2 數(shù)據(jù)庫配置參數(shù)變得更加方便。

確??梢允褂脭?shù)據(jù)庫配置中的 BUFFPAGE 參數(shù)來控制緩沖池大小之后,,將該參數(shù)設(shè)置成合適的值。根據(jù)數(shù)據(jù)庫的大小和應用程序的性質(zhì)將該參數(shù)設(shè)置成一個合理的大值,,這種做法很安全,。通常,該參數(shù)的缺省值非常小,,可能滿足不了要求,。請考慮下列情況:


一開始,如果您的機器上有足夠大的內(nèi)存,,請將 BUFFPAGE 設(shè)置成 40000 個頁(160 MB),,或者等于機器總內(nèi)存的 10%。 
對于大型 OLTP 數(shù)據(jù)庫,,在保持系統(tǒng)穩(wěn)定的同時為緩沖池留出盡可能多的內(nèi)存,。一開始,先嘗試使用 1.6 GB 的內(nèi)存,,然后嘗試用更多內(nèi)存,。 

如何更改該參數(shù)
運行下面這個腳本,以便: 

驗證目錄值 
啟用數(shù)據(jù)庫配置參數(shù) BUFFPAGE 
更新所有數(shù)據(jù)庫的 BUFFPAGE 值,。 
db2 -v connect to DB_NAME
db2 -v select * from syscat.bufferpools
db2 -v alter bufferpool IBMDEFAULTBP size -1
db2 -v connect reset
db2 -v update db cfg for dbname using BUFFPAGE bigger_value
db2 -v terminate

研究步驟
要確定數(shù)據(jù)庫的緩沖池大小是否由 BUFFPAGE 參數(shù)所決定,,請運行:


db2 -v connect to DB_NAME
db2 -v SELECT * from SYSCAT.BUFFERPOOLS
db2 -v connect reset
db2 -v terminate


檢查結(jié)果。如果每個緩沖池都有一個為“-1”的 NPAGES 值,,那么緩沖池大小是由數(shù)據(jù)庫配置中的 BUFFPAGE 參數(shù)控制的,。

要確定緩沖池大小是否足夠大,請在運行應用程序時收集數(shù)據(jù)庫和/或緩沖池的快照,。類似于下面的腳本為您提供這些所需的信息:


db2 -v update monitor switches using bufferpool on
db2 -v get monitor switches
db2 -v reset monitor all

-- run your application --
db2 -v get snapshot for all databases > snap.out
db2 -v get snapshot for dbm >> snap.out
db2 -v get snapshot for all bufferpools >> snap.out
db2 -v reset monitor all
db2 -v terminate


請確保您在斷開數(shù)據(jù)庫連接之前發(fā)出“db2 -v get snapshot”,。當最后一個應用程序與數(shù)據(jù)庫斷開連接時,該數(shù)據(jù)庫停止運行,,同時所有快照統(tǒng)計信息將會丟失,。要確保一直存在使數(shù)據(jù)庫處于正常運行狀態(tài)的連接,請使用下列方法之一:


在收集快照的窗口中保持一個單獨的連接,。 
使用 DB2 ACTIVATE DATABASE 命令,。

在數(shù)據(jù)庫快照或緩沖池快照的快照輸出中,查找下列“logical reads”和“physical reads”,,這樣就可以計算出緩沖池命中率,,它可以幫助您調(diào)優(yōu)緩沖池:


-- Related lines from a sample of bufferpool snapshots --
Buffer pool data logical reads = 702033
Buffer pool data physical reads = 0
Buffer pool data writes = 414
Buffer pool index logical reads = 168255
Buffer pool index physical reads = 0


緩沖池命中率表明數(shù)據(jù)庫管理器不需要從磁盤裝入頁(即該頁已經(jīng)在緩沖池中)就能處理頁請求的時間百分比。緩沖池的命中率越高,使用磁盤 I/O 的頻率就越低,。按如下計算緩沖池命中率:


(1 - ((buffer pool data physical reads + buffer pool index physical reads) /
(buffer pool data logical reads + pool index logical reads))
) * 100%


這個計算考慮了緩沖池高速緩存的所有頁(索引和數(shù)據(jù)),。理想情況下,該比率應當超過 95%,,并盡可能接近 100%,。要提高緩沖池命中率,請嘗試下面這些方法:


增加緩沖池大小,。 
考慮分配多個緩沖池,,如果可能的話,為每個經(jīng)常被訪問的大表所屬的表空間分配一個緩沖池,,為一組小表分配一個緩沖池,,然后嘗試一下使用不同大小的緩沖池以查看哪種組合會提供最佳性能。 

如果已分配的內(nèi)存不能幫助提高性能,,那么請避免給緩沖池分配過多的內(nèi)存,。應當根據(jù)取自測試環(huán)境的快照信息來決定緩沖池的大小。

緩沖池命中率

這個比率說明了為頁面請求提供服務(wù)時,,數(shù)據(jù)庫管理器不需從磁盤裝入頁(即該頁已經(jīng)在緩沖池中)就能處理頁請求的時間百分比,。

計算:

BPHR = (1 - ((緩沖池數(shù)據(jù)物理讀 + 緩沖池索引物理讀) /

(緩沖池數(shù)據(jù)邏輯讀 + 緩沖池索引邏輯讀) ) ) * 100%

索引命中率

這個比率表明了可以在緩沖池中找到的頁面能夠滿足的對索引頁的所有讀請求所占的百分比。

計算:

IHR = (1 - (緩沖池索引物理讀 / 緩沖池索引邏輯讀) ) ) * 100%

數(shù)據(jù)命中率

這個比率說明了可以在緩沖池中找到的頁面能夠滿足的對數(shù)據(jù)頁的所有讀請求所占的百分比,。

計算:

DHR = (1 - (緩沖池數(shù)據(jù)物理讀 / 緩沖池數(shù)據(jù)邏輯讀) ) ) * 100%

結(jié)論

緩沖池命中率大于 80% 被認為是理想的,。對于 OLTP 系統(tǒng)來說,該值的理想情況是盡可能接近于 100% (索引命中率更是如此),。

要提高緩沖池的命中率,可以增加緩沖池的大小,,也可以考慮分配多個緩沖池,,可以為每個經(jīng)常訪問的具有自己的表空間的大型表使用一個緩沖池,也可以為一組小型表使用一個緩沖池,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多