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. Java单例模式的几种常见实现方式

    目录 Java单例模式的几种常见实现方式 懒汉or饿汉? 饿汉:不加锁,线程安全,用起来方便,容易产生垃圾对象 单线程下的单例模式(懒汉,线程不安全) 多线程下的单例模式(一)(懒汉,线程安全) 多线 ...

  2. Cesium中用到的图形技术——Horizon Culling

    译者注:本文翻译自Cesium官方博文<Horizon Culling>,by KEVIN RING. 目录 地平线针对球体剔除一个点 平面测试 圆锥测试 推广到椭球 代码 预览 在开发像 ...

  3. 使用Terraform部署华为云和kubernetes资源

    本文分享自华为云社区<使用Terraform部署华为云和kubernetes资源>,作者: 可以交个朋友. Terraform概述 Terraform 是由 HashiCorp 创建的开源 ...

  4. 5月20日,GaussDB将有大事发生

    摘要:5月20日,华为云TechWave云原生2.0专题将线上举行,更多云原生创新技术和丰富实践还将与大家见面,GaussDB也将再次迎来升级亮相! 本文分享自华为云社区<华为云TechWave ...

  5. 在探索的道路上持续“做对”,火山引擎A/B测试成为这家企业数字基建

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   最近,乐刻的"百城万店"战略在行业激起了许多讨论.在传统健身馆经营承压.服务业难标准化的语 ...

  6. PyCharm View as Array 查看数组

    代码中设置断点. 在Debug Variables 里面,点击 View as Array 如下图所示:

  7. Vue框架基础

    博客目录 前端发展介绍 Vue的快速使用 插值语法 指令系统之文本指令.事件指令.属性指令 style和class 条件渲染 列表渲染 使用v-for进行循环 监控失效 双向数据绑定 input输入框 ...

  8. 详解 SSL(二):SSL 证书对网站的好处

    在如今谷歌.百度等互联网巨头强制性要求网站 HTTPS 化的情况下, 网站部署 SSL 证书已然成为互联网的发展趋势.而在上一篇< 详解 SSL(一):网址栏的小绿锁有什么意义?>中,我们 ...

  9. 流媒体传输协议之 RTMP

    作者:逸殊 审核:泰一 简介 RTMP 在可靠流式传输(TCP)的基础上提供了双向的消息多路复用服务,在通讯双方之间传输与时间相关的并行流数据,如音频,视频和数据消息.协议实现方通常为不同的消息类型指 ...

  10. PS 创建网络去掉反冲增强

    一.当物料为反冲物料时,创建网络数据,希望去掉反冲标识 二.增强实施 在BAPI中传入反冲标识为空 在标准代码中发现反冲标识的赋值位置 判断当不传入反冲标识,将物料自带的反冲标识清空 定期更文,欢迎关 ...