[转帖]金仓数据库KWR使用说明
金仓数据库KWR使用说明
1.KWR性能报告介绍
KWR是Kingbase Workload Repertories的简称,中文全称是自动负载信息库,是一种性能收集和分析工具,提供了一个时间段内整个系统的报表数据,里面包含了常见的等待时间分析,TOP SQL,TOP EVENT等。通过参数设置可以定期生成指定格式的KWR性能报告,可以清理指定日期以外的快照。
kwr每小时采集一次KingbaseES的统计数据生成快照数据,快照数据默认保留8天。快照数据主要来源是:
- 累计式等待事件(sys_stat_waitaccum视图)
- Top SQL(sys_stat_statements视图)
- Schema对象统计信息(sys_stat_*, sys_statio_*视图)
2.部署KWR性能报告功能
2.1.修改配置文件
vi /home/kingbase/KingbaseES/V8/data/kingbase.conf
shared_preload_libraries = 'sys_kwr,sys_stat_statements'
sys_stat_statements.track='top'
track_sql=on
track_wait_timing=on
track_io_timing=on
track_functions='all'
track_activities=on
sys_kwr.enable=on
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
参数解释:
track_activities:开启记录等待事件,默认为on。
track_wait_timing:开启累积式等待事件记录等待时间的功能,默认为off
track_io_timing:开启IO计时统计功能,默认为off
track_functions:开启函数统计功能,默认为
sys_stat_statements.track:跟踪统计SQL语句的访问,推荐用 ‘top’,默认为’none’
sys_kwr.enable:自动对收集到的数据生成快照并保存到kwr库里
其他参数一般情况下使用默认值即可:
sys_kwr.topn:kwr报告显示topn条件记录,默认20条
sys_kwr.history_days:kwr快照数据保留天数,默认8天
sys_kwr.interval:kwr自动采集快照的间隔,默认60分钟
sys_stat_statements.track_parse:sys_stat_statements记录parse次数和时间,默认
开启
sys_stat_statements.track_plan:sys_stat_statements记录plan次数和时间,默认开启

2.2.使配置文件中参数生效
重启数据库
sys_ctl -D /home/kingbase/KingbaseES/V8/data restart
- 1
- 2

2.3.创建KWR扩展
ksql test system连接数据库
create extension sys_kwr;
- 1
- 2

3.使用KWR快照功能
3.1.创建KWR快照
连接数据库执行下面命令创建KWR快照:
select * from perf.create_snapshot();
- 1
- 2

3.2.管理快照
3.2.1.快照查询
快照查询通过下面的语句进行查找
select * from perf.kwr_snapshots;
- 1
- 2

3.2.2.手动创建快照
手动快照则是由 DBA 通过 SQL 语句执行而生成快照,执行 perf.create_snapshot() 函数,返回快照编号:
select * from perf.create_snapshot();
- 1

3.2.3.自动快照
创建快照有2种不同的方式,自动快照和手工快照。
自动快照由后台进程周期性的生成快照,需要配置 kingbase.conf 参数:
sys_kwr.interval=10
- 1
修改参数后,重启 KES 服务器:
sys_ctl -D /home/kingbase/KingbaseES/V8/data restart
- 1


sys_kwr.interval是自动快照间隔,默认 60 分钟一次,这里设置为 10 分钟一次。后台进程 kwr_collector 就会自动每 10 分钟采集一次快照。
这些快照以表的形式存在于当前库,可以通过 SELECT 去查看里面的内容。
3.2.4.清理快照
1.select perf.reset_snapshots(); #清空所有快照
2.select perf.drop_snapshots($begin_snap_id,$end_snap_id); #清除指定范围的快照
- 1
- 2
可以通过函数perf.reset_snapshots()清理所有快照,也可以 drop extension sys_kwr 删除插件后再重新创建插件的方式清理全部的快照。


3.2.5.定期清理快照
sys_kwr.history_days参数是kwr快照数据保留天数,默认8天
这里根据自己需要修改保留天数。
4.生成KWR报告
4.1生成text格式报告
4.1.1.使用perf.kwr_report()函数
调用 perf.kwr_report(start_id,end_id) 来生成 text 报告,这个函数默认生成text文本格式的报告,如果生成html的报告需要加上函数参数’html’,此函数生成的报告默认保存在data/sys_log目录下。
select * from perf.kwr_report(start_id,end_id);
- 1
start_id:起始快照ID
end_id:结束快照ID
4.1.2使用perf.kwr_generate_report()函数
调用perf.kwr_generate_report(start_id,end_id,format)来生成text报告,并且可以指定报告输出位置。
start_id:起始快照ID
end_id:结束快照ID
format:报告的格式,只支持’text’和’html’格式,建议使用’html’格式
ksql -Usystem -dtest -c "select * from perf.kwr_generate_report(start_id,end_id,'text')" > /home/kingbase/kwr_report/kwr_report_02_24_10_10.text
- 1

4.1.3使用perf.kwr_report_to_file()函数
调用perf.kwr_report_to_file (start_id,end_id,format,path)来生成指定位置指定文件名的text报告。
start_id:起始快照ID
end_id:结束快照ID
format:报告的格式,只支持’text’和’html’格式,建议使用’html’格式
path:在服务器上保存报告文件的全路径,必须有写文件的权限
select * from perf.kwr_report_to_file(start_id,end_id,’text’,’/home/kingbase/kwr_report/kwr_report_02_24_10_15.text);
- 1

4.2.生成html格式报告
4.2.1.使用perf.kwr_report()函数
调用 perf.kwr_report(start_id,end_id,format) 来生成 html 报告,生成的报告默认保存在data/sys_log目录下。
select * from perf.kwr_report(start_id,end_id,’html’);
- 1

4.2.2.使用perf.kwr_generate_report()函数
调用perf.kwr_generate_report(start_id,end_id,format)来生成html报告,并且可以指定报告输出位置。
ksql -Usystem -dtest -c "select * from perf.kwr_generate_report(start_id,end_id,'html')" > /home/kingbase/kwr_report/kwr_02_24_10_24.html
- 1

4.2.3.使用perf.kwr_report_to_file()函数
调用perf.kwr_report_to_file (start_id,end_id,format,path)来生成指定位置指定文件名的text报告。
select * from perf.kwr_report_to_file(start_id,end_id,’html’,’/home/kingbase/kwr_report/kwr_report_02_24_10_28.html’);
- 1

5.KWR报告分析
5.1.KWR之DB Time
DB Time主要用来判断当前系统有没有相关瓶颈,是否较为频繁访问系统导致等待时间很长?一般来说,Elapsed时间乘以CPU个数如果大于DB Time,就是正常的,系统压力不大,反之就说明压力较大,例子如图,3877.25*1很明显大于0.01,所以说明系统压力很小

5.2.KWR之load_profile
Load profile指标主要用来显示当前系统的一些指示性能的总体参数,这里介绍一些WAL size,用来显示平均每秒的日志尺寸和平均每个事务的日志尺寸,有时候可以结合Transactions这个每秒事务数,分析当前事务的繁忙程度
如图,平均每秒的事务数Transactions非常小,说明系统压力非常小,一般来说Transactions不超过200都是正常的,或者200左右都是正常的,超过1000就是非常繁忙了,再看看平均每秒的日志尺寸是个位数的,平均每个事务的日志尺寸是个位数的,说明了系统访问不是很频繁,而单个业务是比较复杂的,如果反过来,平均每秒日志尺寸比平均每秒事务日志尺寸大很多,说明系统访问很频繁,而业务比较简单,不需要响应很久

5.3.KWR之top 10 events
Top 10 Foreground WaitEvents,等待事件是衡量数据库优化情况的重要指标,通过观察Wait Event和%DB time两列就可以直观看出当前数据库的主要等待事件
如图可以看出系统主要是CPU被占用太多了

[转帖]金仓数据库KWR使用说明的更多相关文章
- 通过ODBC接口访问人大金仓数据库
国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高:另一方面,国产软件目前普遍难用,性能不稳定,Bug ...
- QT 之 ODBC连接人大金仓数据库
QT 之 使用 ODBC 驱动连接人大金仓数据库 获取数据库驱动和依赖动态库 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库 分别为: 驱动动态库:kd ...
- 通过jmeter连接人大金仓数据库
某项目用的人大金仓数据库,做性能测试,需要用jmeter来连接数据库处理一批数据.jmeter连接人大金仓,做个记录. 1. 概要 在"配置元件"中添加"JDBC Con ...
- linux安装国产数据库(金仓数据库,达梦数据库,南大通用数据库)
今天在公司做的任务是,在Linux的环境下安装三种数据库,结果一种数据库也没有安装好,首先遇到的问题是安装南大通用数据库遇到安装的第五步,就出现问题了,问题是Gbase SDK没有安装成功,以及Gba ...
- Rocky4.2下安装金仓v7数据库(KingbaseES)
1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 jdbh:~ # uname -ra Linux jdbh -x86_64 # SMP Fri Dec :: CST x86_64 G ...
- 润乾配置连接kingbase(金仓)数据库
问题背景 客户根据项目的不同,使用润乾连接的数据库类型各种各样,此文针对前几日使用润乾设计器连接kingbase金仓数据库做一个说明. kingbase金仓数据库是一款国产数据库,操作方式和配置 ...
- 金仓Kingbase数据库网页数据维护分析工具
金仓Kingbase是优秀的国产数据库产品,在能源,政务,国防等领域广泛使用, 现在TreeSoft数据库管理系统已支持Kingbase了,直接在浏览器中就可以操作查看Kingbase数据了,十分方便 ...
- DBeaver连接达梦|虚谷|人大金仓等国产数据库
前言 工作中有些项目可能会接触到「达梦.虚谷.人大金仓」等国产数据库,但通常这些数据库自带的连接工具使用并不方便,所以这篇文章记录一下 DBeaver 连接国产数据库的通用模版,下文以达梦为例(其他国 ...
- 教你10分钟对接人大金仓EF Core 6.x
前言 目前.NET Core中据我了解到除了官方的EF Core外,还用的比较多的ORM框架(恕我孤陋寡闻哈,可能还有别的)有FreeSql.SqlSugar(排名不分先后).FreeSql和SqlS ...
- oracle数据库对象使用说明
1.创建一个分区表,并插入一些数据,同时查询出每个分区的数据. 答:创建分区表如下 2.创建一个视图,并给出一个查询语句. 3.在当前用户下创建一个同义词,用于查询scott用户下的dept表,并给出 ...
随机推荐
- Terraform 的开源替代:OpenTofu 宣布 GA!
OpenTofu 社区于1月10日宣布 OpenTofu 项目 GA,这是 OpenTofu 的首个稳定版本(https://github.com/opentofu/opentofu/releases ...
- 文心一言 VS 讯飞星火 VS chatgpt (127)-- 算法导论11.2 2题
二.用go语言,位向量(bit vector)是一个仅包含0和1的数组.长度为m的位向量所占空间要比包含m个指针的数组少得多.请说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合.字典 ...
- 记一次kubernetes获取internal Ip错误流程
本文分享自华为云社区<记一次kubernetes获取internal Ip错误流程>,作者:张俭. 偶尔也回首一下处理的棘手问题吧.问题的现象是,通过kubernetes get node ...
- 云图说|交换数据空间Exchange Data Space
本文分享自华为云社区<云图说|交换数据空间Exchange Data Space>,作者: 阅识风云. 阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅 ...
- CVE-2022-22965 漏洞分析,安全问题早发现
摘要:Spring在进行参数绑定时调用的 BeanWrapperImpl在进行JavaBean操作时触发了此漏洞. 本文分享自华为云社区<CVE-2022-22965 漏洞分析>,作者:X ...
- 剖析CWE视图的层次定义和解析方式
摘要:CWE做为软件缺陷分类的重要标准, 对安全研究.安全标准.缺陷管理起了重要的纽带作用.CWE通过编号的类型(类缺陷.基础缺陷和变种缺陷等)形成了多层次的缺陷类型划分体系.本文进一步剖析了CWE视 ...
- 被灵魂问倒:这个BUG为什么没测出来?
摘要:为什么没测出来!测试怎么测得?到底会不会测?这对测试来说是灵魂拷问级别不好回答的问题了. 本文分享自华为云社区<被问:这个BUG为什么没测出来?该如何回答>,作者: 曲鸟. 一.前言 ...
- SQL Server 2016 安装
数据库安装 选择全新安装模式继续安装 输入产品秘钥:这里使用演示秘钥进行 接受许可 规则检测 可以后期再开放防火墙对外端口 选择需要安装的功能,想省事可以选择[全选] 可以安装JDK,这边选择取消 P ...
- Codeforces Round #665 (Div. 2) A - D题题解
成功拼手速提前过了AC两题,估计因为这个原因排名挺高的,B题晚上做的时候没绕出来,wa4发... 1401A - Distance and Axis 如果 \(n\) 小 于 \(k\) ,则必须将\ ...
- vue 文件路径获取文件名
例如: url 是//resource//20220819//kfz//调试.zip转换后结果为 调试.zip//文件路径获取文件名 getFileName(url) { let name = &qu ...

