暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a mpp cluster 集群日志的介绍

彦光 2022-02-14
395

1.trace 日志

trace日志主要用于分析性能。

  • gcluster 层:记录 SQL 分布式执行计划。
  • gnode层:记录sql下发到当前节点的执行情况
开启trace日志后查询计划输入$GCLUSTER_BASE/log/gcluster目录下以.trc结尾的文件

l gcluster配置文件中按照如下示例设置,开启trace日志,trace 日志默认是关闭的

gbase> SET GLOBAL gbase_sql_trace=1;
gbase> SET GLOBAL gbase_sql_trace_level=3;

gbase_sql_trace_level 有 1、2、3 级,表示 trace 日志记录信息的详细程度,第 3 级是最详细的日志内容。 日志文件为.trc 后缀名的文件;

trace 日志是根据当前 session 连接生成的 trc 日志,故 session 断开会产生新的 trc 日志。由于日志内容较大,不方便分析,每次执行 sql 语句之前建议清空以前的 trc 日志文件,方法为使用 rm -rf *.trc 删除之前的 trace日志;

GCluster 层的 trace 记录 SQL 的分布式执行计划。可查看SQL 语句的计划步骤是3步还是2步,找出执行时间间隔最大的步骤,然后分析是否能应用优化方法进行优化提高性能;

GNode 层的 trace 日志记录 SQL 语句的完整执行过程。因为一条 SQL 语句经 GCluster 层解析分解执行计划后,会产生很多条 SQL 语句下发到 GNode 层,所以在 到 GNode 的日志目录下会产生多个.trc 日志文件,建议查看执行节点的到 GNode 层的字节数最大的那个.trc 文件即可;

一条 SQL 语句的通用的完整执行流程一般如下所述:

smart scan -> scan -> join -> aggregation -> sort -> materialization -> send result,包含聚集和排序操作的时候通常无需单独的物化步骤,物化在聚集和排序过程中已经完成。如果是包含嵌套子查询的复杂 SQL,嵌套子查询从内至外递归执行,每一层的执行顺序与上述过程基本相同;

排查性能问题时,就是查看上面步骤具体是哪个步骤耗时长,定位后再分析 I/O 因素、 buffer 大小对性能影响等信息,看如何优化能提高性能。

2.system日志

system日志,也称错误日志,默认开启,记录数据库服务启动停止等重要操作,并可记录数据库服务宕等异常情况的程序堆栈,可辅助开发人员查错。

2.1 日志文件存储路径

$GCLUSTER_BASE/log/gcluster/system.log

$GBASE_BASE/log/gbase/system.log

2.2 日志内容说明

l 日志文件名称可通过设置log_error参数修改。默认为$GCLUSTER_BASE/log/gcluster/system.log

当有服务崩溃时,system 日志会记录下崩溃时的程序调用堆栈,出现此类情况可将 system.log 发回公司,由相关开发人员排查,这时 log 中记录的内容类似于 core 文件的作用,可用于分析产生错误的原因,至少可以获知程序崩溃的代码点;

运行过程中出现crash时,system.log中记录了宕机的堆栈信息,core文件中记录了宕机的详细的堆栈信息,查看详细的堆栈信息,方法如下:

  • 集群管理节点层面:在每台集群节点机器的$GBASE_BASE/config路径下,找到配置文件gbase_8a_gcluster.cnf,将文件中的core-file参数去掉参数前的注释符号“#”;
  • 集群数据节点层面:在每台集群节点机器的$GBASE_BASE/config路径下,找到配置文件gbase_8a_gbase.cnf,将文件中的core-file参数去掉参数前的注释符号“#”。完成上述步骤后,运行gcluster_service all restart命令,重新启动集群服务,使上述配置文件的设置生效。

3.express日志

express日志记录express引擎内部执行过程中的一些重要信息,包括异常等,用于查错。

l express 详细日志内容,可以 gcluster 配置文件中设置gcluster_log_level =7,也可以通过set [global] gcluster_log_level=7的方式设置,设置完成后完整的执行计划可输出到 express.log 文件中。设置配置文件后,需要重启集群服务,使上述配置文件的设置生效

缺省情况下只有执行过程中出现的警告错误才会输出到 express.log 文件。

4.gcware日志

GCWare相关的日志记录在$GCWARE_BASE/log和$GCWARE_BASE/liblog路径下,主要包括初始化以及消息回调等相关日志信息。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论