在很多问题的排查中,我们需要在数据库服务器上执行PSP命令,并拿到输出结果进行分析。
注意,则要求服务上已经安装好了GDB命令,检查方式如下:
gdb --version
PSP这个命令在数据库服务器上并不存在,我们需要自己手动建立。
1.cd到数据库软件的bin目录,vi psp 然后输入如下内容
#!/bin/bash
nsamples=1
sleeptime=0
pid=$(pidof $PWD/dmserver)
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
2.保存后,直接在改目录下运行 sh psp 即可,如下图:
上述命令的输出结果中,包含的较多信息,可以协助我们问题排查(含性能分析等)。
1.该命令执行,有可能会让数据库进程短时间内无响应(不超过3秒),需要注重评估是否可以执行;
2.该命令执行时间如果超过3秒,需要立即终止执行(通过 ctrl+c),以免对系统产生过大影响;
文章
阅读量
获赞