DB2 HADR對效能的影響

zchbaby2000發表於2018-09-13

db2trc 命令是 DB2 提供的跟蹤工具。該跟蹤工具記錄有關操作的資訊並將此資訊格式化為可讀格式。
需要注意的是,執行跟蹤時會增加開銷,所以啟用跟蹤工具可能會影響系統效能。

db2trace 可以跟蹤每個函式以及該函式的執行時間。
利用這一性質,我們可以計算出來每次寫日誌花費的時間以及 HADR 帶來的開銷。

首先,我們需要找到主機上的寫日誌的 EDU(Engine Dispatchable Unit),即 db2loggw 的執行緒號

####獲得db2sys的程式號
$ ps -ef | grep -i db2sys | grep -i instref
 instref 15597584 14483602   3 10:24:08      -  6:33 db2sysc 0
####獲得db2loggw的EDU號
$ db2pd -edus | grep -i db2loggw
4372      4372                 91947227             db2loggw (CTMPREF) 0                   8.587111     3.557958
####開啟db2trc監控,寫入檔案中
$ db2trc on -t -p 15597584.4372 -f trace.dump
Trace is turned on
####執行一些db2 transactions操作
####關閉監控
$ db2trc off
Trace is turned off
####格式化檔案輸出
$ db2trc flow -t trace.dump trace.flow
Total number of trace records     : 861
Trace truncated                   : NO
Trace wrapped                     : NO
Number of trace records formatted : 861 (pid: 15597584 tid 4372 node: 0)

解讀檔案
263           18.318085568   sqlpgwlp entry [eduid 4372 eduname db2loggw]
..................................
359           18.319165218   | sqloWaitEDUWaitPost entry [eduid 4372 eduname db2loggw]
360           18.438925718   | sqloWaitEDUWaitPost exit
..................................
369           18.438940500   sqlpgwlp exit

找到 sqlpgwlp 函式,
找到這個函式內的 sqloWaitEDUWaitPost
計算 sqlpgwlp 的執行時間。T1 = 18.438940500 - 18.318085568 = 0.120854932
計算 sqloWaitEDUWaitPost 的執行時間。T2 = 18.438925718 - 18.319165218 =  0.119760500
T1 是完成這次寫日誌的總時間,T2 就是這次寫日誌時,HADR 帶來的開銷

如果我們跟蹤了多次寫日誌的操作,就跟得到多個上面的片段。可以根據所有的片段計算平均值,從而得到更精確地開銷比例。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/725820/viewspace-2214136/,如需轉載,請註明出處,否則將追究法律責任。

相關文章