88. sys_kwr 

88.1. 插件sys_kwr简介 

插件sys_kwr是KingbaseES 的一个扩展插件。主要功能是通过周期性自动记录性能统计相关的快照,分析出KingbaseES的操作系统运行环境、数据库时间组成、等待事件和TOP SQL等性能指标,为数据库性能调优提供指导。

sys_kwr 是 Kingbase Auto Workload Repertories 的简称,可以对 KingbaseES 的负载信息自动以快照的方式进行记录和保存,并提供负载相关的性能报告。

在1.6版本中合入了 KSH 功能,KSH 不在做为单独的插件使用,创建 KWR 插件后便可以使用 KSH 功能。

  • 插件名为 sys_kwr

  • 插件版本 V1.6

88.2. 插件sys_kwr加载方式 

KingbaseES数据库默认将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,重启数据库时自动加载。

示例如下

shared_preload_libraries = 'sys_kwr'

88.3. 插件sys_kwr的参数配置 

要想使用 KWR 的全部报告功能,建议在kingbase.conf里添加以下6个参数

track_sql = on
track_instance = on
track_wait_timing = on
track_counts = on
track_io_timing = on
track_functions = 'all'
sys_stat_statements.track = 'top'
sys_kwr.enable = on

上述参数的意义如下

track_sql:开启统计 sql 时间,等待事件,IO ,默认为off

track_instance开启统计实例级IO,关键活动,锁,默认为off

track_wait_timing开启累积式等待事件记录等待时间的功能,默认为off

track_counts统计数据库活动,默认为on

track_io_timing开启IO计时统计功能,默认为off

track_functions开启函数统计功能,推荐用 'all',默认为'none'

sys_stat_statements.track跟踪统计SQL语句的访问,推荐用 'top',默认为'none'

sys_kwr.enable自动对收集到的数据生成快照并保存到kwr库里,默认为off

其他参数一般情况下使用默认值即可

sys_kwr.topn kwr报告显示topn条件记录,默认20条

sys_kwr.history_days kwr快照数据保留天数,默认8天

sys_kwr.interval kwr自动采集快照的间隔,默认60分钟

sys_kwr.language kwr报告使用语言,默认为中文(chinese 或 chn),可选为英文(english 或eng)

sys_stat_statements.track_parse pg_stat_statements记录parse次数和时间,默认开启

sys_stat_statements.track_plan pg_stat_statements记录plan次数和时间,默认开启

88.4. 插件sys_kwr的使用方法 

88.4.1. 概述 

sys_kwr通过周期性自动记录性能统计相关的快照,分析出KingbaseES的操作系统运行环境、数据库时间组成、等待事件和TOP SQL等性能指标,为数据库性能调优提供指导。

1、SQL语句执行过程中产生的等待事件, IO 和执行时间

2、Top SQL

3、数据库对象统计信息

4、数据库实例统计信息

88.4.2. 自动快照 

KingbaseES启动服务后,sys_kwr collector 后台进程后会每个小时采集一次负载信息,并保存到kwr库(test) 

查询快照列表

SELECT * FROM perf.kwr_snapshots;
snap_id | snap_time | sess_count
--------+------------------------+------------
1 | 2021-12-07 17:51:02+08 | 1
2 | 2021-12-07 17:51:03+08 | 1
3 | 2021-12-07 17:51:04+08 | 1
(3 rows)

88.4.3. 手动快照 

手工快照通过SQL语句来执行

SELECT * FROM perf.create_snapshot();
create_snapshot
-----------------
5
(1 row)

88.4.4. 生成kwr报告 

有了负载信息的快照数据后,就可以调用以下2个函数来生成kwr报告

SELECT * FROM perf.kwr_report(start_id integer, end_id integer, format text = 'text');
SELECT * FROM perf.kwr_report_to_file(start_id integer, end_id integer, format text, file_path text); perf.kwr_report()生成报告并加报告内容自动保存到KingbaseES的data/sys_log目录下。 perf.kwr_report_to_file()则生成报告并将内容保存指定的file_path路径下。

函数参数说明

start_id起始快照ID

end_id结束快照ID

format报告的格式,只支持'text'和'html'格式,建议使用'html'格式。

file_path在服务器上保存报告文件的全路径,必须有写文件的权限。

88.4.5. 生成html报告 

SELECT * FROM perf.kwr_report(1,2,'html');
  • 查看 KWR 报告,请参考KingbaseES数据库性能调优指南3.3.5章。

88.4.6. KSH 功能 

88.4.7. 概述 

KSH 以每秒采样的方式进行会话和数据收集,并将采集数据放入内存的 Ringbuf 队列中,采集的数据主要包括:会话、应用、等待事件、命令类型、QueryId等。其主要使用场景是:当前或历史某个时点,发生了什么样的异常,系统在执行/运行什么任务。

88.5. KSH的参数配置 

KSH 功能相关的参数在kingbase.conf中设置:

shared_preload_libraries ='sys_stat_statements, sys_kwr'
track_activities = on
sys_stat_statements.max = 10000
sys_stat_statements.track =all
sys_kwr.collect_ksh = on # default = off
sys_kwr.ringbuf_size = 200000 # default = 100000
sys_kwr.history_days = 3 # default = 8;最小 2,最大 31
sys_kwr.language = 'english' # default = ‘chinese’

上述参数的意义如下:

track_activities:跟踪活动会话的等待事件、执行SQL、状态等,默认:on

sys_stat_statements.max:设置sys_stat_statement跟踪的最大语句数,默认:5000

sys_stat_statements.track:跟踪统计SQL语句的访问,推荐用 'top',默认为'none'

sys_kwr.collect_ksh:启用或禁用 KSH 数据收集

sys_kwr.ringbuf_size:设置ksh ringbuf大小

sys_kwr.history_days:设置最大的 KSH 历史数据存储

sys_kwr.language:KSH 报告展示中文/英语信息

注:采集报告需要在开启:track_activities,并至少设定 sys_kwr.collect_ksh=on 的情况下才可以查看。开启该参数会有一定的性能损耗。

88.6. KSH 功能的使用方法 

88.6.1. 采集数据说明 

KSH 采集的数据主要包括以下信息:

字段

类型

描述

ts

timestamptz

采样时间

pid

int

进程ID

client_addr

inet

客户端IP地址

app_name

varchar(64)

应用名称

db_id

oid

数据库OID

db_name

varchar(64)

数据库名称

user_id

oid

用户OID

user_name

varchar(64)

用户名

phase

text

执行阶段,如:PARSE, PLAN, EXECUTION, UNKNOWN

event_type

text

等待事件类型

event

text

等待事件

query_id

uint8

QueryId

cmd_type

text

指令类型,如INSERT, SELECT, UPDATE, DELETE, UTILITY等

backend_type

text

后端类型,如:autovacuum, autovacuum worker等

state

text

运行状态 如running, idle等

is_simple

bool

简单查询语句标志

table_id

oid

IO操作变量的表OID

func

text

运行plsql的函数名

learder_pid

int

父进程pid(针对并行)

  • 保存于内存 Ringbuf 的数据可以通过视图 perf.session_history 查看:

SELECT * FROM perf.session_history;
  • 保存于数据库的历史数据可以通过视图 perf.ksh_history 查看:

SELECT * FROM perf.ksh_history;

88.6.2. 生成报告 

SELECT perf.ksh_report({start_ts}, {duration}, {slot_width});
SELECT * FROM perf.ksh_report_to_file({start_ts},{duration},{slot_width},{file_path},{format});
SELECT * FROM perf.ksh_report_by_snapshots({start_snapid}, {end_snapid}, {slot_width}, {format});
SELECT * FROM perf.ksh_report_to_file_by_snapshots({start_snapid}, {end_snapid}, {file_path}, {format}, {slot_width});

上述参数说明:

start_ts: 报告开始时间,默认:当前时间-15分钟

duration: 报告时长,默认到15分钟,最大不超过60

slot_width: 报告最小区间,输入0时系统自动计算合适的

start_snapid: 起始快照号

end_snapid: 结束快照号

file_path: 报告生成地址,示例:’/home/username/ksh_report.html’

format: 报告生成格式,可选择 ’html’和’text’两种格式

88.7. 插件sys_kwr卸载方法 

进入 KingbaseES 创建插件

示例

DROP EXTENSION sys_kwr;

88.8. 插件sys_kwr升级方法 

通过 alter extension 来升级插件。

示例,由 1.5 升级到 1.6

ALTER EXTENSION sys_kwr UPDATE TO '1.6';

[转帖]88. sys_kwr的更多相关文章

  1. nginx负载均衡基于ip_hash的session粘帖

    nginx负载均衡基于ip_hash的session粘帖 nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除 ...

  2. [转帖]Speed-BI数据分析案例:2016年8月汽车销量排行榜

    [转帖]Speed-BI数据分析案例:2016年8月汽车销量排行榜 据中国汽车工业协会统计分析,2016年8月,乘用车市场表现较好,当月销量环比和同比均呈较快增长.1-8月,乘用车销量总体呈稳定增长, ...

  3. 偶尔转帖:AI会议的总结(by南大周志华)

    偶尔转帖:AI会议的总结(by南大周志华) 说明: 纯属个人看法, 仅供参考. tier-1的列得较全, tier-2的不太全, tier-3的很不全. 同分的按字母序排列. 不很严谨地说, tier ...

  4. google(转帖)

    本帖最后由 qiushui_007 于 2014-6-10 16:14 编辑 IP Addresses of Google Global Cachewww.kookle.co.nr Bulgaria  ...

  5. [转帖]csdn windows 下载整理.

    特别说明:本帖不提供任何密钥或激活方法,请大家也不要在帖内回复或讨论涉及版权的相关内容,仅提供原版ISO下载链接 https://bbs.csdn.net/topics/391111024?list= ...

  6. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  7. [转帖]网络协议封封封之Panabit配置文档

    原帖地址:http://myhat.blog.51cto.com/391263/322378

  8. [转帖]零投入用panabit享受万元流控设备——搭建篇

    原帖地址:http://net.it168.com/a2009/0505/274/000000274918.shtml 你想合理高效的管理内网流量吗?你想针对各个非法网络应用与服务进行合理限制吗?你是 ...

  9. 3d数学总结帖

    3d数学总结帖,以下是对3d学习过程中数学知识的简单总结 角度值和弧度制的互转 Deg2Rad 角度A1转弧度A2 => A2=A1*PI/180 Rad2Deg 弧度A2转换角度A1 => ...

  10. [转帖]The Lambda Calculus for Absolute Dummies (like myself)

    Monday, May 7, 2012 The Lambda Calculus for Absolute Dummies (like myself)   If there is one highly ...

随机推荐

  1. VsCode如何配置C语言环境?

    以前学校上C语言课程都是使用VC++6.0上课,这个学期为了复习一遍C语言,而且自己经常使用VSCode开发前端项目,所以为了方便.这里把需要的环境和插件配置在这里介绍一下. Windows环境下安装 ...

  2. 文心一言 VS 讯飞星火 VS chatgpt (45)-- 算法导论6.1 3题

    三.证明:在最大堆的任一子树中,该子树所包含的最大元素在该子树的根结点上. 文心一言: 在最大堆中,根结点是整个堆中最大元素的孩子,因此它包含的最大元素是在该子树的根结点上. 我们可以通过递归的方式证 ...

  3. bucket表:数仓存算分离中CU与DN解绑的关键

    摘要:Bucket存储是数据共享中重要的一环,当前阶段,bucket存储可以将列存中的CU数据和DN节点解绑. 本文分享自华为云社区<存算分离之bucket表--[玩转PB级数仓GaussDB( ...

  4. Tarjan:这个算法大神

    摘要:图的算法是进行静态分析的基础数据算法,如何提高图的分析效率,就需要对图的算法有进一步的认识. 1. 引言 在静态分析技术中, 我们常用会将代码转成抽象语法树(AST), 然后采用深度遍历(DFS ...

  5. 经典永流传,华为云媒体 AI 让老电影焕发新生

    摘要:近日,在华为云TechWave全球技术峰会(人工智能&数据)上,马栏山视频文创产业园首席专家周苏岳受邀发表演讲<经典永流传,媒体 AI 让老电影焕发新生>,分享与华为云原生媒 ...

  6. 训练千亿参数模型的法宝,昇腾CANN异构计算架构来了~

    摘要:盘古的训练以「昇腾AI处理器」为基座,同时借助了「CANN 异构计算架构」,让硬件算力得以充分释放,大大缩短了训练时间! 2021年4月,"华为云盘古大模型"一炮走红AI人工 ...

  7. DevOps 团队如何防御 API 攻击

    在过去,勒索软件是 DevOps 团队常常担心的主要安全威胁.尽管现在勒索软件攻击仍在发生,但随着企业安全防护能力与意识增强,勒索软件造成的安全威胁已不如从前.然而,根据 Gartner 调查显示,A ...

  8. Solon 在 jdk 各版本反射权限问题的处理指南

    jdk17 如果出现反射权限问题.可添加jvm参数:--add-opens (取消了 illegal-access 参数) #示例: java --add-opens java.base/java.l ...

  9. django基本流程

    创建项目 django-admin startproject web cd web python manage.py startapp weblist 生成迁移文件 python manage.py ...

  10. JSP | Tomcat目录结构详解

    前排提醒:本文不涉及如何安装 Tomcat,仅分析Tomcat目录结构. Tomcat 版本:apache-tomcat-8.5.71 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器 ...