金仓数据库性能分析工具利器之一——KSH

一、什么是KSH

KSH是KingbaseES会话历史信息(Kingbase Session History)的简称(类比Oracle ASH),主要功能是会话历史的分析,并针对报告呈现的性能瓶颈进行优化。

二、KSH基本原理

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

三、KSH配置使用方式

1.配置参数

开启KSH,需要在kingbase.conf中配置开启以下参数:

重启数据库生效 sys_ctl -D /home/kingbase/KingbaseES/V8 restart

2.添加KSH插件

使用SQL在目标数据库中创建SYS_KSH扩展:CREATE EXTENSION sys_ksh;

3.生成KSH报告

语法:

SELECT perf.ksh_report({start_ts}, {duration}, {slot_width}, {write_to_file});

  1. start_ts: 报告开始时间,默认:当前时间-15分钟
  2. duration: 报告时长,默认到15分钟,最大不超过60
  3. slot_width: 报告最小区间,输入0时系统自动计算合适的宽度
  4. write_to_file: 是否输出到sys_log目录,默认否

四、KSH报告分析

KSH输出报告的内容包括:

  1. Report & Instance Info: 报告和实例信息
  2. Top User Event: TOP用户事件
  3. Top Background Event: TOP后端事件
  4. Top SQL with Top Event: TOP语句的TOP事件
  5. Complete List Of SQL Text: TOP完整语句
  6. Top Session: TOP会话
  7. Top Client Id: TOP客户端
  8. Top SQL Command Type: TOP语句命令类型
  9. Top Phase Of Execution: TOP运行阶段
  10. Activity Over Time: 区间活动统计

通过该输出,可以发现报告区间发生的最多的等待事件、查询和客户端的信息

注意:

  1. 该命令仅支持管理员在主服务器运行(备机无法运行)
  2. 历史数据的采样周期为10秒,实时数据的采样周期为1秒

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值