[转帖]金仓数据库KWR使用说明

数据库,kwr,使用,说明 · 浏览次数 : 0

小编点评

# KWR报告分析 # 5.1.KWR之DB Time DB Time * 3877.25*1很明显大于0.01,所以说明系统压力很小 # 5.2.KWR之load_profile Load profile * Transactions不超过200都是正常的 # 5.3.KWR之top 10 events Top 10 Foreground WaitEvents * 等待事件是衡量数据库优化情况的重要指标,通过观察Wait Event和%DB time两列可以直观看出当前数据库的主要等待事件 # 5.4.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被占用太多了

在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树数据库组成59769 人正在系统学习中

与[转帖]金仓数据库KWR使用说明相似的内容:

[转帖]金仓数据库KWR使用说明

金仓数据库KWR使用说明 1.KWR性能报告介绍2.部署KWR性能报告功能2.1.修改配置文件2.2.使配置文件中参数生效2.3.创建KWR扩展 3.使用KWR快照功能3.1.创建KWR快照3.2.管理快照3.2.1.快照查询3.2.2.手动创建快照3.2.3.自动快照3.2.4.清理快照3.2.5

[转帖]金仓数据库KingbaseES 数据库参数优化

目录 一、数据库应用类型 二、主要参数 max_connections shared_buffers effective_cache_size maintenance_work_mem checkpoint_completion_target wal_buffers default_statisti

[转帖]金仓数据库KingbaseES V8R6 中unlogged表

KingbaseESV8R6有一种表称为unlogged,在该表新建的索引也属于unlogged。和普通表的区别是,对该表进行DML操作时候不将该表的变更记录变更写入到wal文件中。在数据库异常关机或者异常崩溃后该表的数据会被truncate掉,但是在写入性能上会比普通表快几倍。 这个特性类似于or

[转帖]金仓数据库KingbaseES误删除系统超级用户(superuser)权限的恢复方式

`https://blog.csdn.net/arthemis_14/article/details/129879269` 在使用KingbaseES数据库的时候,系统默认存在一个跟系统初始化用户同名的Superuser(默认是system用户,可更改)。 这个Superuser的存在其实对于权限的

[转帖]金仓数据库KingbaseES V8R6 索引膨胀

索引膨胀 对于索引,随着业务不断的增删改,会造成膨胀,尤其Btree索引,也会涉及索引分裂、合并等,导致索引访问效率降低、维护成本增加。另外,索引页的复用与HEAP PAGE不一样,因为索引的内容是有序结构,只有符合顺序的ITEM才能插入对应的PAGE中,不像HEAP TUPLE,只要有空间就可以插

[转帖]金仓数据库KingbaseES数据目录结构

KingbaseES数据库结构 [kingbase@postgresV8]$ tree -LP2data/.├── data│ ├── base # 存储用户创建的数据库文件及隶属于用户数据库的所有关系.比如表、索引...│ ├── current_logfiles. # 记录当前被日志收集器写入的

[转帖]金仓数据库KingbaseES V8R6索引坏块故障处理

案例说明: 在执行表数据查询时,出现下图所示错误,索引故障导致表无法访问,后重建索引问题解决。本案例复现了此类故障解决过程。 适用版本: KingbaseES V8R3/R6 一、创建测试环境 # 表结构信息prod=# \d+ test1 Table "public.test1" Column|

[转帖]金仓数据库KingbaseES表空间介绍

1、表空间的概念 KingbaseES中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置。在KingbaseES中表空间实际上就是给表指定一个存储目录。 2、表空间的作用 通过使用表空间,管理员可以控制一个KingbaseES安装的磁盘布局。 如果初始化集簇所在的分区或者卷用光了空间,

[转帖]金仓数据库KingbaseES表空间(tablespace)知多少

金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等。一旦表空间被创建,那么就可以在创建数据库对象时通过名称来引用他。 一个数据库可以有一个或多个表空间,创建数据库时自动创建系统表空间sys_defau

[转帖]金仓数据库KingbaseES分区表 -- 声明式创建分区表

https://www.modb.pro/db/638045 1. 创建分区表同时创建分区 1.1 准备环境 # 创建分区表同时创建分区 create table tb1(id bigint,stat date,no bigint,pdate date,info varchar2(50)) part