多线程不间断写入ob卡住

【 使用环境 】测试环境
【 OB or 其他组件 】
ob4.1
【 使用版本 】
【问题描述】

多线程不间断写入ob卡住,即使创建表也会报超时错误

【复现路径】

服务器配置

ob版本为4.1

ocp 1台:8核 64G内存,500G系统磁盘

observer 3台:24核 128内存,500G系统磁盘 2T数据盘,redo磁盘与系统盘共用

测试方式

数据源为mq:20个主题,每个主题生产者每秒发送5条消息,每条消息包含600条左右数据,相当于每个主题每秒产生3000条数据;
数据接收:flink对每个主题单独建立接收任务,使用jdbc写入到ob
数据存储:ob, 每个主题对应单独一个实时表,覆盖式存储,只保留最新值

ob表结构(dbeaver显示):

CREATE TABLE `realtime_90001` (
  `POINT_ID` varchar(100) NOT NULL,
  `UPDATE_TIME` timestamp NULL DEFAULT NULL,
  `UPLOAD_TIME` timestamp NULL DEFAULT NULL,
  `VAL` double DEFAULT NULL,
  `QUALITY_TYPE` int(11) DEFAULT NULL,
  `VALID_RANGE` varchar(100) DEFAULT NULL,
  `ZERO_DRIFT` double DEFAULT NULL,
  PRIMARY KEY (`POINT_ID`)
) DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0;

写入的数据类似如下形式:

过程

当flink消费10个主题数据向ob写入时,写入速度: 平均600条数据200毫秒左右,这也是刚好达到了能消费完每个主题每秒3000条数据的临界速度。

当flink消费20个主题时向ob写入时,写入速度:平均600条数据2秒。运行5分钟后,写入数据降低到4秒。运行8分钟后,OceanBase管理平台开始出现报警,信息如下:

ERROR detect_palf_hang_failure_ (ob_failure_detector.cpp:356) [2266964][T1002_Occam][T1002][Y0-0000000000000000-0-0] [lt=20][errcode=-4392] disk is hung(msg="clog disk may be hung, add failure event", clog_disk_hang_event={type:PROCESS HANG, module:LOG, info:clog disk hang event, level:FATAL}, clog_disk_last_working_time=1690187276046367, hung time=5076683) 

会显示:clog disk may be hung

之后3台observer均会报上面的警告

这个时候有其他人通过dbeaver连接ob即使创建一张简单的表,也会提示超时,无法成功创建

按照ob文档里 默认生产参数配置调整了一些参数,问题依旧

【问题现象及影响】

【附件】

你用的是ob 的flink connector吗? ob 的flink connector 做了一些独有的一些优化, 推荐使用一下

好的我们测试下

好用的话, 给我们点个赞
不好用的话, 欢迎给我们些建议

好的,我们测试下 :smile:,问一下,这个和obkv相比哪个性能会更好点呢

卡住很可能是 redo 所在盘使用率到达阈值,或者就是 redo 盘太慢了。
系统盘一般性能不怎么好。建议换个位置。实在没有就跟 data公用那块 2T 的盘,只是要限制住 数据文件(block_file)大小已经限制住 clog的 大小,总和不要超过磁盘的 95% 。

我们今天测试同时消费20个主题没有再出现明显问题,当同时消费35个主题时问题再次出现,我们记录了下面的数据。
vda就是系统与redo共用的磁盘,vdc是数据磁盘。

primary_zone策略

primary_zone策略为RANDOM

MySQL [oceanbase]> SELECT * FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'dora' \G;
*************************** 1. row ***************************
                 TENANT_ID: 1002
               TENANT_NAME: dora
               TENANT_TYPE: USER
               CREATE_TIME: 2023-07-03 12:33:54.026268
               MODIFY_TIME: 2023-07-03 12:34:21.324163
              PRIMARY_ZONE: RANDOM
                  LOCALITY: FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3
         PREVIOUS_LOCALITY: NULL
        COMPATIBILITY_MODE: MYSQL
                    STATUS: NORMAL
             IN_RECYCLEBIN: NO
                    LOCKED: NO
               TENANT_ROLE: PRIMARY
         SWITCHOVER_STATUS: NORMAL
          SWITCHOVER_EPOCH: 0
                  SYNC_SCN: 1690422411334140870
            REPLAYABLE_SCN: 1690422411334140870
              READABLE_SCN: 1690422411334140870
        RECOVERY_UNTIL_SCN: 4611686018427387903
                  LOG_MODE: NOARCHIVELOG
ARBITRATION_SERVICE_STATUS: DISABLED
1 row in set (0.093 sec)

转储合并信息

MySQL [oceanbase]> select * from gv$ob_memstore \G;
*************************** 1. row ***************************
        SVR_IP: xx.xx.xx.67
      SVR_PORT: 2882
     TENANT_ID: 1002
   ACTIVE_SPAN: 2480930816
FREEZE_TRIGGER: 7730941120
    FREEZE_CNT: 1
 MEMSTORE_USED: 2478833664
MEMSTORE_LIMIT: 38654705650
*************************** 2. row ***************************
        SVR_IP: xx.xx.xx.66
      SVR_PORT: 2882
     TENANT_ID: 1002
   ACTIVE_SPAN: 2608857088
FREEZE_TRIGGER: 7730941120
    FREEZE_CNT: 1
 MEMSTORE_USED: 2608857088
MEMSTORE_LIMIT: 38654705650
*************************** 3. row ***************************
        SVR_IP: xx.xx.xx.68
      SVR_PORT: 2882
     TENANT_ID: 1002
   ACTIVE_SPAN: 2688548864
FREEZE_TRIGGER: 7730941120
    FREEZE_CNT: 1
 MEMSTORE_USED: 2688548864
MEMSTORE_LIMIT: 38654705650
3 rows in set (0.038 sec)

在3台observer上各取五次iostat数据

[root@oceanbase-observer-01 ~]# iostat -x 1
Linux 4.18.0-477.13.1.0.1.an8.x86_64 (oceanbase-observer-01) 	2023年07月27日 	_x86_64_	(24 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.70    0.00    4.16    3.15    0.13   87.86

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             28.21  205.76    142.27   2114.60     0.00   152.46   0.00  42.56    3.55    3.71   0.86     5.04    10.28   2.21  51.67
vdb              1.29   14.20    944.14    112.82     0.00     5.61   0.00  28.31   23.31    1.90   0.06   734.69     7.94   2.52   3.90
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.38    0.00   0.00     3.75     0.00   0.50   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.00    0.00    4.28    3.73    0.13   86.86

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda              0.00   26.00      0.00   1732.00     0.00    35.00   0.00  57.38    0.00   69.12   1.80     0.00    66.62  26.27  68.30
vdb              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           9.34    0.00    4.82    8.91    0.08   76.85

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda              6.00   75.00   2252.00   3152.00     0.00    93.00   0.00  55.36  100.17   24.55   2.44   375.33    42.03  10.04  81.30
vdb              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.18    0.00    4.41    9.88    0.04   77.48

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda              4.00   34.00   2140.00   2552.00     0.00    50.00   0.00  59.52  233.50   42.12   2.37   535.00    75.06  22.82  86.70
vdb              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.37    0.00    4.78    9.40    0.04   78.41

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda              2.00   51.00   1216.00   2208.00     0.00    66.00   0.00  56.41   66.00   26.43   1.48   608.00    43.29  16.66  88.30
vdb              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

[root@oceanbase-observer-02 ~]# iostat -x 1
Linux 4.18.0-477.13.1.0.1.an8.x86_64 (oceanbase-observer-02) 	2023年07月27日 	_x86_64_	(24 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.60    0.00    3.83    3.12    0.84   88.61

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             64.41  206.74    313.42   1893.59     0.00   155.43   0.00  42.92    2.47    3.24   0.83     4.87     9.16   1.90  51.63
vdb              1.22   14.30    975.71    114.26     0.00     5.61   0.00  28.18   21.58    1.43   0.05   797.61     7.99   2.05   3.18
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.28    0.00   0.00     3.75     0.00   0.44   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.56    0.00    4.50   14.59    0.47   76.89

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             13.00   25.00   2272.00   3376.00     1.00    30.00   7.14  54.55   45.31   99.40   3.08   174.77   135.04  26.32 100.00
vdb              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.27    0.00    4.70   15.44    0.47   75.13

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             19.00   20.00   5856.00   3024.00     1.00    28.00   5.00  58.33  101.89  101.20   3.96   308.21   151.20  24.54  95.70
vdb              0.00   12.00      0.00     84.00     0.00     8.00   0.00  40.00    0.00    1.17   0.01     0.00     7.00   1.50   1.80
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.81    0.00    4.96   12.66    0.30   78.27

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             25.00   61.00   3676.00   9964.00     1.00    51.00   3.85  45.54   32.44   70.18   5.09   147.04   163.34  10.77  92.60
vdb              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.19    0.00    4.78   10.74    0.63   79.66

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             32.00   58.00   7176.00   6652.00     1.00    48.00   3.03  45.28   47.88   38.72   3.78   224.25   114.69  10.13  91.20
vdb              0.00   12.00      0.00     64.00     0.00     4.00   0.00  25.00    0.00    1.50   0.02     0.00     5.33   1.67   2.00
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00
[root@oceanbase-observer-03 ~]# iostat -x 1
Linux 4.18.0-477.13.1.0.1.an8.x86_64 (oceanbase-observer-03) 	2023年07月27日 	_x86_64_	(24 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.45    0.00    3.69    4.34    0.52   88.00

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             64.42  210.33    306.32   1866.21     0.00   152.68   0.00  42.06    2.21    2.55   0.68     4.76     8.87   1.63  44.76
vdb              1.17   13.31    925.23    107.63     0.00     5.25   0.00  28.29   25.10   42.46   0.59   789.07     8.09  34.30  49.67
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.34    0.00   0.00     3.75     0.00   0.50   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          10.13    0.00    4.09   13.55    0.63   71.59

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             13.00   42.00   2792.00   3972.00     0.00    41.00   0.00  49.40   73.00   47.74   2.95   214.77    94.57  18.15  99.80
vdb              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   4.10
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           9.29    0.00    4.52   12.96    0.55   72.69

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             28.00  100.00   4284.00   8232.00     0.00    90.00   0.00  47.37   30.79   18.90   2.75   153.00    82.32   7.03  90.00
vdb              0.00   12.00      0.00     64.00     0.00     4.00   0.00  25.00    0.00   54.83   0.66     0.00     5.33  51.50  61.80
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          15.23    0.00    4.51    7.64    0.84   71.77

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             41.00  166.00   5460.00  11860.00     0.00   135.00   0.00  44.85   19.93    6.08   1.83   133.17    71.45   4.07  84.20
vdb              0.00   12.00      0.00     64.00     0.00     4.00   0.00  25.00    0.00   39.83   0.48     0.00     5.33  40.00  48.00
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          13.40    0.00    4.40    8.29    0.63   73.28

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
vda             33.00  141.00   5244.00  11860.00     0.00   107.00   0.00  43.15   16.55    8.59   1.76   158.91    84.11   4.05  70.40
vdb              0.00   12.00      0.00     80.00     0.00     7.00   0.00  36.84    0.00   43.67   0.53     0.00     6.67  43.83  52.60
vdc              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

问题已确认为 redo日志盘和系统盘共用,且是sata盘,导致磁盘IO打满,出现性能问题,推荐redo日志盘使用独立的SSD磁盘。

问一下,如果使用机械硬盘,增加节点数目能解决这个问题吗

达到一定规模还是有可能出现IO打满影响使用问题的,对后续集群扩展不友好。生产环境建议使用SSD

建议你用 tsar 软件,这样可以得到主机性能连续的数据。便于在更长的时间范围内判断主机性能某块是否有瓶颈。
有监控数据证明 io 不行就可以去提需求升级硬件了。至少要保证 redo 用上独立的 ssd 盘。

好的,谢谢,我了解下