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
Uh oh!
There was an error while loading. Please reload this page.
-
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