1、普遍收集场景
①在kingbase.conf中配置guc参数
shared_preload_libraries = 'liboracle_parser, sys_stat_statements, sys_kwr'
sys_stat_statements.track = 'top' # default = 'none'
sys_kwr.collect_ksh = on # default = off
上述参数含义:
sys_stat_statements.track:设置 sys_stat_statements.track 控制哪个语句可以被该模块跟踪,声明 'top' 来跟踪顶级(直接通过客户端发出)的语句,'all' 跟踪嵌套的语句,'none' 禁用语句状态收集。建议使用 'top'。
sys_kwr.collect_ksh:启用或禁用 sys_ksh 数据收集,默认:关闭
②ksql连接数据库
./ksql –p 54321 –U system kingbase
③创建sys_kwr扩展和快照1
Create extension sys_kwr;
Select *from perf.kwr_snapshot();
④执行以下业务之一:
业务1:tpcc 10仓10并发 2min(可观察较完整信息)
业务2:./kbbench –p 54321 –Usystem –i –s【num】 【database】
【注】数据量为num*100000,database指定灌数库
进行压力测试:./kbbench –p 54321 –U system –r –c2 –j2 –P1 –M prepared –d 【database】
⑤创建快照2
Select * from perf.create_snapshot();
⑥收集ksh报告
1)根据时间段进行收集
Select * from perf.ksh_report((CURRENT_TIMESTAMP - '00:15:00'::interval,10,0,'text', 'database'));
函数定义:Select * from perf.ksh_report({start_ts}, {duration}, {slot_width}, {format},{database});
start_ts: 报告开始时间,默认:当前时间-15分钟
duration: 报告时长,默认:15分钟,最大不超过60
slot_width: 报告最小区间,输入0时系统自动计算合适的宽度,默认:0
format: 报告生成格式,可选择 ’html’和’text’两种格式,默认 TEXT 格式
database:指定收集某个库的信息
2)根据快照进行收集
Select * from perf.ksh_report_by_snapshots(1,2,0, 'text', 'database');
Select * from perf.ksh_report_by_snapshots({start_snapid},{end_snapid},{slot_width}, {format},{database});
start_snapid: 起始快照号
end_snapid: 结束快照号
slot_width: 报告最小区间,输入0时系统自动计算合适的宽度,默认:0
format: 报告生成格式,可选择 ’html’和’text’两种格式,默认 TEXT 格式
database:指定收集某个库的信息
收集离线报告
SELECT * FROM perf.ksh_report_to_file_by_snapshots({start_snapid}, {end_snapid}, {file_path}, {format}, {slot_width},{database});含义同上