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的日志文件。
另外要写大量的日志到日志文件,也会对数据库服务器的性能造成较大影响,分析日志的时间也可能相对较长。在性能分析完成后,需要关闭相关日志跟踪。
浙公网安备 33010602011771号