南大通用GBase 8a堆栈收集方式汇总

原文链接:www.gbase.cn/community/p...

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

集群在运行过程中偶尔会出现crash,当集群crash时,从哪里查看堆栈信息呢?system.log 中记录了宕机的堆栈信息,core 文件中记录了宕机的详细的堆栈信息,如果想要看到详细的堆栈信息,则需要在集群coor节点以及集群data节点的配置文件中,开启该功能,具体步骤如下:

1、修改集群coor节点配置文件:在每台集群coor节点机器的集群安装目录,如/opt/gcluster/config 路径下,找到配 置文件 gbase_8a_gcluster.cnf,将文件中的 core-file 参数去掉参数前的注释符号"#"。

2、修改集群data节点配置文件:在每台集群节点安装目录,如/opt/gnode/config 路径下,找到配置文件 gbase_8a_gbase.cnf,将文件中的 core-file 参数去掉参数前的注释符号"#"。

3、重启集群每个节点服务:86版本切换到 root 用户,运行 service gcware restart 命令,重新启动集群服务;95版本使用dbauser用户执行gcluster_services all restart重启服务,使上述配置文件的设置生效。

堆栈收集方式

根据进程名的收集方式

javascript 复制代码
pstack `pidof gbased`|/opt/gcluster/server/bin/stack_uniq.py > gbased_ip_pstack.txt

说明:打印去重后的gbased进程堆栈,输出到指定文件中去,其中:

gbased为进程名称,可以是gbased、gclusterd、gcware、gccli等8a的各种进程名称。

/opt/gcluster/server/bin/stack_uniq.py为去重脚本,位置在安装目录下对应gcluster、gnode目录下的server/bin目录中不同版本的路径略有不同。

gbased_ip_pstack.txt为输出路径。

86、95版本:

953多实例版本:

PS:也可以ps获取该进程的id号,直接pstack id获取堆栈,pstack就是gstack的一个软连接

sql卡住时的堆栈收集

在明确卡住sql的情况下,除了直接打印对应的gclusterd,gbased堆栈以外,还可以直接打印该sql的线程id信息:打印方法,先从gc或者gn层show full processlist,获得该sql的Tid,然后执行pstack 来获取卡住sql的现场信息。如下图:

PS:建议卡住sql间隔多打印几次进程堆栈,其中多次存在同样堆栈的方法值得重点怀疑,有助于研发根据不同状态的堆栈分析。

宕机堆栈获取方式

  1. system.log中获取

宕机后一般会在system日志中获取到对应的堆栈信息,路径为安装路径下对应gcluster/log/glcuster/system.log,gnode/log/gbase/system.log,可以根据宕机发生的时间结合express日志和定时processlist收集的日志,梳理分析宕机时刻业务环境发生的变化。

  1. dump文件获取方式

解压dump文件 ./xxxx.dump,dump如果无法解压,可以给dump文件增加执行权限即可,展开目录,有如下文件列表。

其中system保存有宕机堆栈信息,如果没有记录,可以观察gstack文件中的堆栈信息

  1. core文件获取堆栈方式

core文件位置在安装目录对应gcluster、gnode目录的userdata目录下

执行如下命令:

复制代码
gdb gbased corefile

执行结果如下:

执行如下命令输出堆栈信息:

shell 复制代码
>set logging file stack.txt
>set logging on
>t a a bt(堆栈打印完为止)
>set logging off
>q 退出

打开stack.txt,查找segfault

开启和关闭corefile的参数,在对应的gc和gn配置文件下增加 core_file字段就可以开启

PS:core文件较大,可能会增强客户感知,请现场斟酌使用

宕机堆栈信息去重判断

现场对宕机问题的堆栈要进行判断去重,不同的堆栈提交不同的问题反馈单。

判断堆栈是否重复,需要人为梳理堆栈信息中的,进程对应的前几条程序方法调用情况,一般认为不同的方法对应不同的宕机堆栈信息,以下为两个不同的宕机堆栈信息

原文链接:www.gbase.cn/community/p...

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

相关推荐
2401_8735878221 分钟前
MySQL——事务管理
数据库·mysql
探索宇宙真理.21 分钟前
SiYuan SQL漏洞 | CVE-2026-29073复现&研究
数据库·经验分享·sql·eureka·安全漏洞·siyuan
2501_9454235422 分钟前
工具、测试与部署
jvm·数据库·python
Oueii23 分钟前
数据分析师的Python工具箱
jvm·数据库·python
TDengine (老段)26 分钟前
TDengine IDMP 组态面板 —— 工具箱
大数据·数据库·时序数据库·tdengine·涛思数据
weixin_4219226929 分钟前
使用Scikit-learn进行机器学习模型评估
jvm·数据库·python
Liu6288832 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
烟花巷子41 分钟前
使用Kivy开发跨平台的移动应用
jvm·数据库·python
不是株1 小时前
Redis(入门篇)
数据库·redis·缓存