网站咨询弹窗是怎么做的,网站建设的目标客户,wppay wordpress,我的主页制作代码有一些用户想对 OceanBase 进行 sysbench 压测#xff0c;并向我询问是否需要对数据库的各种参数进行调整。我想起有一个工具 obdiag #xff0c;具备对集群进行巡检的功能。因此#xff0c;我正好借此机会试用一下这个工具。 obdiag 功能的比较丰富#xff0c;详细情况可参…有一些用户想对 OceanBase 进行 sysbench 压测并向我询问是否需要对数据库的各种参数进行调整。我想起有一个工具 obdiag 具备对集群进行巡检的功能。因此我正好借此机会试用一下这个工具。 obdiag 功能的比较丰富详细情况可参见“ obdiag 概述”。此次我主要试用其巡检 OceanBase 集群的功能至于其他功能将根据实际需求逐步进行试用。 如何安装Obdiag
这里直接参考官网链接即可相对比较简单只需要执行官网上的几个命令即可。 如何配置
参考官网的步骤执行 obdiag config 命令之后需要填写一批信息。
因为我是用 OCP 部署的集群所以这些信息直接在 OCP 上的集群概览里复制黏贴一下就好了。 执行完成后在 ~/.obdiag/config.yml 中会生成一份新的配置内容就是上面填写的这些内容。
集群巡检
接下来可以对 OceanBase 集群通过执行 obdiag check 命令进行巡检了。
我这里只挑和 sysbench 有关的内容进行巡检task 应该都在 sysbench_run 和 sysbench_free 这两个集合里了参考自渠磊的博客。
[xiaofeng.lbyobvos-dev-d3 /home/xiaofeng.lby/.obdiag]
$cat check_package.yaml
...
sysbench_run:- sysbench.sysbench_run_test_tenant_cpu_used- sysbench.sysbench_run_test_tenant_memory_used
sysbench_free:- sysbench.sysbench_free_test_cpu_count- sysbench.sysbench_free_test_memory_limit- sysbench.sysbench_free_test_network_speed
...
如果想指定执行某几个特定 task 的话可以在这个 check_package.yaml 文件里加一个自己的 task 集合然后再执行就好了。
接下来执行一下 sysbench_free 这个 task 集合执行过程中会打印详细的执行日志结束之后会把巡检结果生成一个报告。
[xiaofeng.lbyobvos-dev-d3 /home/xiaofeng.lby/.obdiag]
$obdiag check --casessysbench_free[xiaofeng.lbyobvos-dev-d3 /home/xiaofeng.lby/.obdiag/tasks/observer/sysbench]
$obdiag check --casessysbench_free
...
2024-01-02 16:04:43,395 [INFO] export report to ./check_report//check_report_observer_2024-01-02-16-04-30.table, export type is table
If you want to view detailed obdiag logs, please run: obdiag display-trace --trace_id 1f89be5a-5d61-3ba4-830e-9d05adf6e143
Check observer finished. For more details, please run cmd cat ./check_report//check_report_observer_2024-01-02-16-04-30.table
run 一下它的 cmd cat xxx.table 就可以看到巡检的结果的报告了。 比如 sysbench.sysbench_free_test_cpu_count 这个 task 的执行之后的 task_report 是 [critical] [remote:11.158.31.20] cpu_count/os_cpu_count is 25%,is not between 80 and 100。
猜测它大概意思就是说如果想去做 sysbench 压测11.158.31.20 这个节点上给 observer 的 cpu 资源建议是全部 cpu 资源的 80% 以上但是现在实际只给了 25% 左右有点儿少了。
比如 sysbench.sysbench_test_cluster_parameters 这个 task 执行之后的 task_report 是 [critical] [cluster:obcluster] clusters enable_record_trace_log is true , need to change False。
应该就是让用户把 enable_record_trace_log 这个配置项改成 flase在 sysbench 压测期间少写一些没用的 trace log。
其他的 task 不再一一列举critical 应该是建议修改warning 应该是推荐 DBA 同学再去检查下是否需要修改。
不过其中有一个叫 sysbench.sysbench_free_test_network_speed 的 task 执行失败了task_report 报错是 [fail] [remote:11.158.31.20] ssh execute Exception:Execute Shell command on server 11.158.31.20 failed, command[ethtool eth0 | grep Speed | grep -o [0-9]*], exception:bCannot get wake-on-lan settings: Operation not permitted\n。这个感觉像是 obdiag 的 bug通过答疑钉钉群33254054或者开源问答区咨询了一下obdiag 研发同学给的反馈是这个 task 写的有点儿问题应该是在 ethtool 能执行成功时才进行网速的检测。这里简单调整下 task当系统无法执行 ethtool 命令时把标准错误重定向到 /dev/null 就好了。 其他例如自定义巡检任务 task 的功能这次就先不试用了感觉还是有点儿麻烦的需要先熟悉 OceanBase 的系统表和字典视图和 shell 命令后面有机会再试着加一个自己的巡检 task 吧。
总结
最后简单总结一下
通过 obdiag 在 sysbench 执行前进行巡检还是比较简单和便捷的完全傻瓜式的安装和使用最后给出的巡检结果也算比较清楚。
虽然在我的测试环境里暴露了一个网速检测时的小瑕疵但是整体来看还是挺不错的所以推荐大家在使用 OceanBase 进行 sysbench 压测前使用一下这个 obdiag 工具。
这个工具的功能太多一下子试用不完这次就先用一下其中的巡检功能其他功能就等后面有实际需求的时候再慢慢来试用了。