Replies: 1 comment
-
提测文档:https://oceanbase.yuque.com/org-wiki-obtech-vh7w9r/imzr6c/ia0yyaffh5816pe8 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
1.需求背景
在 OceanBase 数据库中,如果发现数据库响应缓慢或存在登录、执行操作超时等问题,可能租户存在队列挤压;期望 obdiag 可以支持分析指定时间段段日志里某个租户,判断是否存在队列积压。
#316
2.总体设计
2.1功能需求:
期望 obdiag 可以支持分析指定时间段段日志里某个租户,判断是否存在队列积压
2.2非功能需求
(1)数据需求:数据库连接信息
(2)性能需求:对于响应时间、更新处理时间有相应的时间限制
(3)安全需求:对于密码加解密
3.实现方案
(1)新增公共基础项:
--tenant:租户名
--quenue:队列挤压阈值
命令行执行:
obdiag analyze queue --since '2m' --tenant 'cudb64128' --queue 50 -c test.yml
(2)解析命令行参数,参数校验,根据yml信息连接集群sys租户,根据入参租户名解析出租户id和租户分布节点
(3)根据分析的开始结束时间、或since去定位要分析的日志
(4)根据(2)获得租户id、分布节点,去每个节点上关键词过滤符合时间戳的日志,通过
grep "dump tenant info(tenant={id:租户id," observer.log
(5)分析满足条件的日志,如果对应的租户过滤日志中以下几个键值对持续非0,比如大于50(具体这个阈值可以再商榷),只要有一个键值满足即可判断有租户队列积压。
req_queue:total_size=XXX
multi_level_queue:total_size=XXX
group_id = *, queue_size =XXX
(5)返回结果以表格形式展示,通过结果能判断该租户是否有挤压、最大挤压值、挤压次数:
4.影响评估
4.1兼容性评估
(1)获取租户id及分布节点等需要连接sys租户查询的信息,不同的集群版本执行sql会有差异。
4.2风险评估
(1)集群不可用时,无法通过sys确定租户信息,若节点个数太多,去每个节点都去分析代价大(目前为串行采集)
4.3性能评估
响应时间快速,若出现查询失败,抛出异常。
Beta Was this translation helpful? Give feedback.
All reactions