PSP抓堆栈信息与审查DMDSC核心参数
DM技术交流QQ群:940124259
1. 简单描述
在项目中常遇到系统瓶颈,绝望时可通过以下脚本快速定位追踪堆栈信息,严格审查DMDSC集群GBS/LBS核心参数(涉及内存交换的瓶颈)。至于分析数据库系统瓶颈的具体原因,靠自身工作经验积累和总结,但可通过以下提供的工具提取到数据库有关线程调用模块信息,向我方厂家技术人员反馈现场问题,提交相应的堆栈信息供我方参考分析,并迅速提供技术支持和解答。
2. PSP抓堆栈脚本
###### PSP抓堆栈的,在dmserver所在bin目录运行,当前目录下只有dmserver,不然 pid要改成=$1 做成位置参数
#!/bin/bash
nsamples=1
sleeptime=0
pid=$(pidof $pwd/dmserver)
#pid=24032
ss=$(date +%F%H%M%S.dmserver.t)
for x in $(seq 1 $nsamples)
do
gdb -ex "set pagination 0" -ex "thread apply all bt" -batch -p $pid
sleep $sleeptime
done >$ss
cat $ss|awk '
BEGIN { s = ""; }
/^Thread/ { print s; s = ""; }
/^\#/ { if (s != "" ) { s = s "," $4} else { s = $4 } }
END { print s }' | \
sort | uniq -c | sort -r -n -k 1,1
3. 审查DMDSC核心参数
--数据库参数核查DMDSC
with a as(
select 2 f1,'DSC_HALT_SYNC' n,'0' v ,'' f union all
select 2 f1,'DSC_TRX_CMT_OPT' n,'1' v ,'' f union all
select 2 f1,'DSC_USE_SBT' n,'1' v ,'' f union all
select 2 f1,'DSC_REMOTE_READ_MODE' n,'1' v ,'' f union all
select 2 f1,'DSC_TRX_VIEW_SYNC' n,'0' v ,'' f union all
select 2 f1,'LOCK_DICT_OPT' n,'2' v ,'' f union all
select 2 f1,'DSC_N_CTLS' n,'50000' v ,'' f union all
select 2 f1,'DSC_N_POOLS' n,'101' v ,'#Number Of LBS/GBS pools' f union all
select 2 f1,'DSC_ENABLE_MONITOR' n,'0' v ,'' f union all
select 2 f1,'DSC_FILE_INIT_ASYNC' n,'0' v ,'' f union all
select 2 f1,'TRX_DICT_LOCK_NUM' n,'1024' v ,'' f union all
select 2 f1,'DSC_TRX_CMT_LSN_SYNC' n,'0' v ,'' f
)
select a.*,b.PARA_VALUE,b.FILE_VALUE,case when (v!=file_value or file_value is null) then 'sp_set_para_value(2,'''||n||''','''||v||''');' else '' end from a,v$dm_ini b where a.n=b.para_name(+);