kingbase kbbadger工具使用详解

使用kbbadger

kbbadger是一个命令行工具,可以分析KingbaseES在运行过程中产生的日志文件,并以图形化报告的形式展示数据库性能指标。

生成日志的内容可以通过GUC参数比如log_min_duration_statement等进行控制。主要分析的统计有:连接、会话、检查点、临时文件、回收(Vacuum)、锁、查询和事件等。

支持的日志文件的格式包括:syslog,stderr,csv log和json log等。生成的所有图表都是可缩放的并且可单独下载为PNG文件。另外,在生成的报告中SQL查询将突出显示。

基本能力

kbbadger生成的报告中包含的信息有:

  • 总体统计
  • 占用时间最多的查询
  • 最常见的查询
  • 最常见的错误
  • 查询时间直方图
  • 会话时间直方图
  • 顶级查询的用户
  • 顶级查询的应用程序
  • 最多取消的查询
  • 最耗时的准备/绑定查询

以下是主要耗时的查询的示例报告:

报告也会提供每小时的统计图表,其内容包括:

  • SQL查询统计信息
  • 临时文件统计
  • 检查点统计
  • 自动vacuum和自动分析统计
  • 已取消查询
  • 错误事件(死机、致命、错误和警告)
  • 错误的类分布

以下是按5分钟粒度分割的SQL流量统计的示例:

使用示例

kbbadger依赖数据库日志系统,需要在kingbase.conf中配置好相关参数:

# 启用日志记录
log_min_duration_statement = 0
# 用于kbbadger的默认解析格式
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,remote=%h '
# 日志记录的信息
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0
log_error_verbosity = default
# 设置消息显示的语言
lc_messages='en_US.UTF-8'
 

运行TPCC大约23分钟,产生了6.3 GB日志:

$ du -sh sys_log
6.3G sys_log
 

生成kbbadger报告:

$ kbbadger ./sys_log/kingbase* -f stderr -J 12 -j 32
[========================>] Parsed 6704882201 bytes of 6704882201 (100.00%), queries: 7722936, events: 803
LOG: Ok, generating html report...
 

kbbadger会在当前目录下产生out.html报告。

适用场景

kbbadger实用工具基于数据库的日志系统,在各环境下都可以直接使用。生成的报告以网页方式呈现,图表丰富且易于阅读。

在无法使用其他性能调优工具的情况下,比如因为KingbaseES版本比较低没有KWR的场景,可以使用kbbadger来分析大部分性能问题。

因为日志系统要采集的信息比较大,所以sys_log目录磁盘空间消耗会比较多。以TPCC测试场景100数据仓库100并发连接为例,23分钟内产生了6.3 GB的日志文件。

另外要写大量的日志到日志文件,也会对数据库服务器的性能造成较大影响,分析日志的时间也可能相对较长。在性能分析完成后,需要关闭相关日志跟踪。

posted @ 2026-07-31 09:47  极品大红袍  阅读(4)  评论(0)    收藏  举报