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. Vue3中使用TypeScript封装axios遇到的问题(AxiosRequestConfig)

    如果您有更好的解决方法,欢迎评论区评论. 版本 "dependencies": { "axios": "^1.4.0", "van ...

  2. Text Intelligence - TextIn.com AI时代下的智能文档识别、处理、转换

    一.智能文档处理介绍 在AI时代,智能文档处理技术正变得越来越重要.它包括了智能文字识别(OCR).智能文档信息抽取.文档图像处理以及文档转换等多个方面.这些技术共同构成了现代信息处理的核心,广泛应用 ...

  3. Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中

    前言 今天要讲的是在Window 2008 R2版本的服务器下如何配置Web Deploy,和Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中. 因为历 ...

  4. ChatGPT新玩法来了,微信聊天机器人

    前言 上一篇文章中说了ChatGPT是什么,然后怎么注册使用. 传送门:花了1块钱体验一把最近很火的ChatGPT 但是实际操作下来还是有不少小伙伴跟我一样遇到各种坑. 没有魔法工具 OpenAI的服 ...

  5. Volcano:带你体验容器与批量计算的碰撞的火花

    摘要:今年(2020)7月初,Volcano 发布了1.0版本.1.0做为里程碑版本,在Volcano整个规划中起到了承上启下的作用.此次发布的1.0版本支持了GPU共享,作业动态扩缩容,批任务抢占等 ...

  6. 实战案例丨分布式系统中如何用python实现Paxos

    摘要:提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代 名词,因为当前最常用的一批共识算法都是基于它改进的.比如,Fast Paxos 算法. Cheap Pax ...

  7. 揭秘字节跳动云原生Spark History 服务 UIService

    本文是字节跳动数据平台数据引擎SparkSQL团队针对 Spark History Server (SHS) 的优化实践分享. 文 | 字节跳动数据平台-数据引擎-SparkSQL团队 在字节跳动内部 ...

  8. 利用 Solon-web 框架写一个 Hello World

    Solon 项目的开源地址: https://gitee.com/noear/solon 最近看了不少别人写的各种框架的 Hello world 示例,有些看起来,真的很复杂. 今天,我们用号称简单到 ...

  9. PPT 图片8大操作技巧

    如何实现图片的批量导入 插入相册 图片批量导出 7z 直接解压 修改扩展名 -> 解压 PPT 抠图 设备透明色 删除背景色 二次曝光效果 低版本 office 通过,形状来实现 图片融入背景 ...

  10. C# 完美实现物联网 MQTT 数据通信

    前言 MQTT 协议由于其用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务,具有开销低.占用带宽低.即时通讯等优点,使其在物联网.小型设备.移动应用等方面有较广泛的应用,在工业物联网中, ...