Observer 4038

【 使用环境 】测试环境
【 OB or 其他组件 】observer
【 使用版本 】4.1
【问题描述】最近在测试ob的benchmark 的性能,三台同等配置的物理机作为observer 部署机器,一台机器作为obproxy 和benchmark运行机器,
数据导入后进行压测的时候,总是有个节点的CPU使用率比另外两台高10%左右,看到这台高的节点日志里面存在大量的4038 报错,说是无主,查文档这个报错是无主的报错,并且带有部分的日志限速的日志,但是看着好像也没问题,这个有什么排查思路不?

以下是操作过的一些参数及机器配置

CPU 96C 内存 数据盘
8260M*2 512G P5510 7T*2
8260M*2 512G P5510 7T*2
8260M*2 512G P5510 7T*2
8260M*2 512G
-- sys租户执行
ALTER system SET enable_sql_audit=false;
select sleep(5);
ALTER system SET enable_perf_event=false;
ALTER system SET syslog_level='PERF';
alter system set enable_record_trace_log=false;
-- alter system set system_memory='30G';        -- 官方推荐,但是先不动memory_limt/3 ≤ system_memory ≤ memory_limt

-- 需要重启
-- alter system set __easy_memory_limit='20G';
alter system set net_thread_count=16;

-- 设置超时时间为3天,避免超时线程断开,对应租户执行
set global ob_query_timeout = 259200000000;
set global ob_trx_timeout = 259200000000;
set global ob_trx_idle_timeout = 259200000000;

-- 每次重启obproxy 后需要重新设置下
ALTER proxyconfig SET proxy_mem_limited='32G';
ALTER proxyconfig set enable_compression_protocol=false;

4038错误码的定义是 “not master”,而非 “no master”,因此在发现4038错误后,有两种可能:

  1. 当前 Leader 存在,但是 Leader 不是本 Server。(需要排查上层模块问题)
  2. 当前 Leader 不存在。(排查网络连通性问题)

大概率是第一种。

可能是 4.1 版本 location cache 的刷新存在一些小问题,切主之后没能及时刷新到最新的 leader 副本所在节点的信息,导致执行 das 任务时会出现一些重试,重试到刷新出最新的 location cache 就可以继续执行了,所以在日志里会看到这些重试的信息,影响还好。

因为重试信息打的太多太快,所以触发了日志限流的动作,也就看到了 reach syslog rate limit 的信息。

印象中最新的 4.2 版本修复了一些和 location cache 刷新相关的问题,建议直接试用最新版本的 observer 进行压测。

1 个赞

建议:

  1. 当前 system_memory 的具体值多少?
  2. 测试租户的资源规格多大?(不要用 sys 租户测试)。
  3. TPC-C 建表语句是什么?用了分区吗?分多少个区?
  4. 租户的 PRIMARY_ZONE 是什么?
  5. 用了 tablegroup 吗?
  6. 用了复制表吗?
  7. 有性能监控数据吗?OCP? dooba?
  8. 建议 换 4.2.1 版本。

详细优化思路可以参考:

1 个赞

Mark

system_memory是30G,用的是企业版的测试,建了oracle租户RAMON模式,分配了26C70G的资源,4.1没有复制表,但是有tablegroup,用4.1的换4.2版本之后测试就没出现类似的情况,而且性能跑起来也更稳定了

之前4.1的参考文档调整参数后,三台机器会有一台的CPU跑满出现4038,另外两台在那边剩余很大一部分资源,后来换4.2的版本后资源使用率就平稳了,怀疑跟@兹拉坦说的location cache问题,导致那台出现4038的机器CPU跑满了,

目前4.2的遇到benchmark的totaltpm跑到113W左右跑步上去了,我先看看您发的这个文章,感谢

1 个赞