欢迎光临
我们一直在努力

DB2 HADR对性能的影响

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 带来的开销

如果我们跟踪了多次写日志的操作,就跟得到多个上面的片段。可以根据所有的片段计算平均值,从而得到更精确地开销比例。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。