YashanDB ystop.sh

1 概述

ystop.sh 是 YashanDB 的交互式性能监控工具,用于实时监控数据库活动。通过按键切换不同的监控视图。

2 基本用法

# 默认连接本地数据库
./ystop.sh

# 指定数据库连接
./ystop.sh sys/yasdb_123@192.168.1.2:1688

3 快捷键说明

快捷键 功能 说明
d Database overview 数据库监控大盘,显示 TPS、响应时间、数据库大小、Buffer 命中率、VM 使用、等待事件等
D Database detail 数据库详细运行指标,显示系统运行统计信息
b Buffer pool 缓冲区池使用状况
s Top SQL 显示 TOP SQL,可按多种指标排序
z Select orderby column 在 Top SQL 视图下选择排序字段
l Lock & Spinlock 显示锁和自旋锁统计
L Lockwait 显示锁等待详细信息
S Session 显示会话状况和当前运行的 SQL
t Tablespace 显示表空间使用状况
T Table 显示表的数据和索引大小
w Wait event 显示系统等待事件
m Memory pool 显示内存池配置参数
v Version 显示版本信息
q Quit 退出

4 监控指标说明

4.1 Database Overview (d 键)

  • Transactions per second:TPS,每秒事务数
  • Response time(µs):响应时间(微秒)
  • REDO Blocks per second:每秒产生的 REDO 块数
  • SQL statements per second:每秒 SQL 语句数
  • DB size(GB):数据库大小
  • Data buffer:数据缓冲区大小及命中率
  • VM blocks:VM 总块数 / 空闲块数 / 换出块数
  • Dirty queue length:脏页队列长度
  • Sessions:最大会话数 / 当前会话数 / 活跃会话数
  • Top wait event:TOP 等待事件
  • Top spinlock:TOP 自旋锁
  • Top SQL by cpu_time:按 CPU 时间排序的 TOP SQL
  • Running SQL:当前正在运行的 SQL

4.2 Top SQL 排序字段 (s 键后按 z 选择)

字段名 说明
executions 执行次数
parse_calls 解析调用次数
cpu_time CPU 时间
elapsed_time 耗时
application_wait_time 应用等待时间
avg_time_ms 平均执行时间(毫秒)
disk_reads 磁盘读取数
buffer_gets 缓冲区获取数

4.3 Wait Event (w 键)

显示系统发生的等待事件,包括:

  • event:等待事件名称
  • total_waits:总等待次数
  • time_waited:总等待时间
  • avg_waittime:平均等待时间
  • wait_class:等待事件类别

5 常用场景

5.1 性能瓶颈定位

  1. d 查看监控大盘,观察 TPS 和响应时间
  2. w 查看等待事件,找出 TOP 等待事件
  3. s 查看 TOP SQL,分析慢 SQL
  4. S 查看当前会话和正在执行的 SQL

5.2 内存问题排查

  1. b 查看 Buffer Pool 使用情况
  2. m 查看内存池配置
  3. d 查看 VM 使用情况(Total/Free/Swapout)

5.3 锁问题排查

  1. l 查看锁和自旋锁统计
  2. L 查看锁等待详细信息

5.4 存储问题排查

  1. t 查看表空间使用情况
  2. T 查看表的数据和索引大小

6 配置参数

6.1 默认参数

参数 默认值 说明
DBURL sys/yasdb_123@0.0.0.0:1688 数据库连接串
ROWSRETUEN 30 返回行数
TOPN 5 TOP 显示数量
SLEEPINTERVAL 5 刷新间隔(秒)

6.2 修改刷新间隔

编辑 ystop.sh 文件,修改 SLEEPINTERVAL 参数:

SLEEPINTERVAL=10  # 修改为10秒刷新一次

7 常见问题

7.1 连接失败

确保数据库服务正常运行,连接串正确:

# 测试连接
yasql sys/yasdb_123@192.168.1.2:1688 -c "SELECT 1"

7.2 权限不足

确保运行 ystop.sh 的用户有权限执行 yasql 命令。