【OceanBase诊断调优】—— Unit 迁移问题的排查方法

适用版本:V2.1.x、V2.2.x、V3.1.x、V3.2.x

本文主要介绍 OceanBase 数据集在副本迁移过程中遇到的问题的排查方法。

适用版本

V2.1.x、V2.2.x、V3.1.x、V3.2.x

手动调度迁移问题的排查

OceanBase 数据库的 RootService 模块负责 Unit 迁移的调度,如果一直没有对迁移进行调度,可以通过以下方法进行排查。

  1. 通过以下 SQL 找到 RootService 的 IP 地址。

    obclient> SELECT * FROM __all_server WHERE with_rootserver=1;
    +----------------------------+----------------------------+----------------+----------+----+-------+------------+-----------------+--------+-----------------------+--------------------------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+
    | gmt_create                 | gmt_modified               | svr_ip         | svr_port | id | zone  | inner_port | with_rootserver | status | block_migrate_in_time | build_version
                                              | stop_time | start_service_time | first_sessid | with_partition | last_offline_time |
    +----------------------------+----------------------------+----------------+----------+----+-------+------------+-----------------+--------+-----------------------+--------------------------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+
    | 2021-03-24 10:32:55.367438 | 2021-03-24 10:35:56.904319 | xx.xxx.xxx.xxx |     2882 |  2 | zone2 |       2881 |               1 | active |                     0 | 2.2.76_20210314152507-03d916596ba416277bf49a1a2fccb0b0d36a1631(Mar 14 2021 15:56:27) |         0 |   1616553286007503 |            0 |              1 |                 0 |
    +----------------------------+----------------------------+----------------+----------+----+-------+------------+-----------------+--------+-----------------------+--------------------------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+
    1 row in set (0.01 sec)
    
  2. 登录到 RootService 所在的服务器,通过以下命令搜索 balancer 相关的日志。

    [admin@oceanbase /]$ grep balancer log/rootservice.log
    

迁移过慢问题排查

  1. 检查数据库配置项,建议的值如下:

    • 将 server_data_copy_out_concurrency 配置为 10。

    • 将 server_data_copy_in_concurrency 配置为 10。

    • 将 sys_bkgd_io_low_percentage 按需配置。

    • 将 sys_bkgd_net_percentage 按需配置。

    其中,server_data_copy_in_concurrency 与 server_data_copy_out_concurrency 分别用于配置单个节点迁入数据与迁出数据的最大并发数。sys_bkgd_io_low_percentage 表示 sys_io_percent 的下限,如果下限太低则可能导致合并的 I/O 很慢,可以通过适当调大这个值来调大 I/O。sys_bkgd_net_percentage 表示后端网络带宽占用。

    有关以上配置项的详细信息,请参见《OceanBase 数据库 参考指南》中的 系统配置项 章节。

  2. 检查 Unit 迁移操作是否为异地进行 

    通过以下命令检查延时,如果延时大于 5 ms,则表示迁移操作为异地进行。将操作系统的 sysctl.conf 文件中的 tcp_slow_start_after_idle 参数设置为 0,避免 TCP 连接在空闲后被重新设置。其中 observer_ip 表示迁移目的服务器的 IP 地址。

    [admin@oceanbase /]$ ping <observer_ip>
    
  3. 检查 I/O 是否达到磁盘瓶颈。

    通过以下命令确认是否达到磁盘 I/O 瓶颈。

    [root@hostname /]# iostat -x -k 1
    Linux 3.10.0-327.ali2019.alios7.x86_64 (k08j13249.eu95sqa)      03/30/2021      _x86_64_        (64 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              16.29    0.00    6.85    0.02    0.00   76.84
    

    通过以下命令检查 io_size_byte 列中 2097152 对应行 io_ps 是否达到 500 以上。

    [admin@oceanbase /]$ cat etc/io_resource.conf
    version 1
    io_type    io_size_byte    io_ps           io_rt_us
    0          4096            139979.75       123.25
    0          8192            122290.50       139.44
    0          16384           102972.00       164.16
    0          32768           64478.75        196.28
    0          65536           38162.25        219.13
    0          131072          20608.50        232.28
    0          262144          10537.00        280.90
    0          524288          5284.00         414.86
    1          2097152         890.00          1781.68
    submit_thread_cnt 1
    getevent_thread_cnt 5
    

    如果 io_ps 未达到 500,检查日志,查看 sys_io_high_percent 是否与配置 sys_bkgd_io_low_percentage 一致。如果不一致,则说明存在 I/O 限流。

    [admin@oceanbase /]$ grep io_stat log/observer.log
    [2019-01-11 16:45:35.629871] INFO  [COMMON] ob_io_manager.cpp:1424 [26043][Y0-0000000000000000] [lt=18] Current io stat, (sys_io_percent=60, sys_iops_up_limit=770, user_max_rt=20775.528088989257, user_io_stat={average_size:0, average_rt_us:"0.000000000000", old_stat:{io_cnt:27169649, io_bytes:349257160063, io_rt_us:276864943639}, new_stat:{io_cnt:27169649, io_bytes:349257160063, io_rt_us:276864943639}}, sys_io_stat={average_size:2097152, average_rt_us:"2784.086956521739", old_stat:{io_cnt:10151653, io_bytes:21289559392256, io_rt_us:127287447387}, new_stat:{io_cnt:10151676, io_bytes:21289607626752, io_rt_us:127287511421}}, io_conf={sys_io_low_percent:50, sys_io_high_percent:60, user_iort_up_percent:100, cpu_high_water_level:7680, write_failure_detect_interval:60000000, read_failure_black_list_interval:300000000, retry_warn_limit:2, retry_error_limit:5}, cpu_stat={avg_usage:584})
    
  4. 检查网络配置。

    1. 检查网卡是千兆还是万兆。

    2. 检查 ifconfig 输出的结构是否有 drop 或者 error 的包。

    3. 通过 tsar 或 vsar 检查 retrans,如果大于 0.2 则说明交换机或者链路存在问题。

  5. 检查出现迁移过慢的步骤。

    执行以下 SQL 语句,检查 ACTION 列值,该字段表示目前迁移正处于的步骤。

    obclient> SELECT * FROM __all_virtual_partition_migration_status WHERE action!='END' AND result = 0\G
    

迁移失败问题的排查

  1. 确认常见错误码。

    目前,常见的迁移失败对应两个错误码,分别为:

    • ERROR 4109 :常见于 OceanBase 数据库 V1.4 版本,如果目的端在合并或者转储,可能出现该错误。如果 rebuild 的时候遇到,可以通过加快合并速度来回避,即调大合并线程数或者增量 sysio 的带宽限制。

    • ERROR 4018 :表示源端进行了合并或者转储,导致找不到需要的数据。需要调大迁移的带宽、sysio 限制或者降低转储合并的频率。

  2. 检查是否存在硬件问题。

    1. 检查机器各硬件是否存在故障。

    2. 检查错误日志。

      如果结果为空则表示无故障。

      [root@hostname /]# dmesg|grep -E "Failed status, reset controller|Controller encountered a fatal error and was reset|Controller encountered a fatal error and was reset
      

      对于配置了 Raid 的机器还需要进行以下检查,如果结果为空则表示无故障。

      [root@hostname /]# tbraid log | grep -E "Read Medium ERR|Error"
      
    3. 通过以下命令确认是否存在 RX 或 TX 错误。

      [root@hostname /]# ifconfig
      bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
              inet xxx.xxx.xxx.xxx  netmask xxx.xxx.xxx.xxx  broadcast xxx.xxx.xxx.xxx
              ether xx:xx:xx:xx:xx:xx  txqueuelen 0  (Ethernet)
              RX packets 234167440  bytes 206275603707 (192.1 GiB)
              RX errors 0  dropped 63  overruns 0  frame 0
              TX packets 241808476  bytes 97456446934 (90.7 GiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      
    4. 检查 tsar 或 vsar 的 retrans 值,如果大于 0.2 则表示网络链路故障。

      [root@hostname /]# tsar 
      Time           ---cpu-- ---mem-- ---tcp-- -----traffic---- --sda--- --dfa--- --dfb--- --dfc--- --dm-0-- --dm-7-- --dm-8-- --dm-9-- -dm-10-- -dm-11-- -dm-12-- -dm-14-- -dm-24-- --dm-3-- --dm-2-- --dm-4-- -dm-15-- --dm-5-- -dm-16-- -dm-18-- -dm-17-- -dm-21-- -dm-19-- -dm-20-- --dm-1-- --dm-6-- -dm-13-- -dm-22-- -dm-23-- -dm-25-- -dm-28-- -dm-26-- -dm-27-- -dm-29-- -dm-30-- -dm-31--  ---load-
      Time             util     util   retran    bytin  bytout     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     load1
      30/03/21-16:45  21.62    53.82     0.00     3.0K    4.9K     0.01     0.04     0.33     1.26     0.00     0.00     0.00     0.00     0.00     0.00     0.01     0.00     0.00     0.40     0.00     0.00     0.39     0.00     0.01     0.29     0.00     0.00     0.00     0.00     0.02     0.35     0.39     0.00     0.00     0.15     0.00     0.00     0.00     0.00     0.00     0.00     15.31
      30/03/21-16:50  21.59    54.39     0.00     2.9K    4.8K     0.01     0.04     0.30     1.20     0.00     0.00     0.00     0.00     0.00     0.00     0.01     0.00     0.00     0.37     0.01     0.00     0.37     0.00     0.01     0.29     0.00     0.00     0.00     0.00     0.02     0.32     0.39     0.00     0.00     0.14     0.00     0.00     0.00     0.00     0.00     0.00     12.37
      30/03/21-16:55  24.40    54.68     0.00     2.9K    4.9K     0.01     0.27     1.08    32.99     0.00     0.00     0.00     0.00     0.00     0.00     0.02     0.00     0.00     0.40     0.00     0.01     0.40     0.00     0.01     0.28     0.00     0.00     0.00     0.00     0.24     1.10    32.64     0.00     0.00     0.16     0.00     0.00     0.00     0.00     0.00     0.00     24.60
      30/03/21-17:00  24.46    55.30     0.00     2.9K    4.9K     0.01     0.19     1.11    18.98     0.00     0.00     0.00     0.00     0.00     0.00     0.01     0.00     0.00     0.38     0.00     0.00     0.37     0.00     0.01     0.28     0.00     0.00     0.00     0.00     0.17     1.13    18.49     0.00     0.00     0.17     0.00     0.00     0.00     0.00     0.00     0.00     19.38
      30/03/21-17:05  21.74    55.89     0.00     2.9K    4.9K     0.01     0.04     0.02     1.26     0.00     0.00     0.00     0.00     0.00     0.00     0.01     0.00     0.00     0.41     0.01     0.00     0.36     0.00     0.01     0.30     0.00     0.00     0.00     0.00     0.02     0.03     0.38     0.00     0.00     0.16     0.00     0.00     0.00     0.00     0.00     0.00     16.01
      
      MAX             38.78    79.44     0.13     1.7M   51.1K     0.69     1.55    55.95    50.54     0.00     0.00     0.00     0.00     0.00     0.00     0.61     0.12     0.00     6.98     0.01     0.11     6.65     0.12     0.01     4.94     0.00     6.50     0.34    55.83     0.33    12.47    45.96     0.82    55.79     6.68     6.63     0.34    55.81     1.14     0.00     0.00     61.70
      MEAN            29.42    76.67     0.00     9.4K    5.2K     0.01     0.09     0.71     3.73     0.00     0.00     0.00     0.00     0.00     0.00     0.01     0.00     0.00     0.44     0.01     0.01     0.44     0.00     0.01     0.33     0.00     0.40     0.01     0.35     0.03     0.20     2.13     0.02     0.55     0.43     0.41     0.01     0.35     0.00     0.00     0.00     22.73
      MIN             16.84    48.16     0.00     2.8K    4.2K     0.01     0.06     0.00     1.14     0.00     0.00     0.00     0.00     0.00     0.00     0.01     0.00     0.00     0.42     0.01     0.01     0.41     0.00     0.01     0.29     0.00     0.04     0.01     0.00     0.02     0.00     0.34     0.01     0.00     0.04     0.04     0.01     0.00     0.00     0.00     0.00     10.32
      
      [root@hostname /]# vsar
      Time              ---cpu-- ---mem-- ---tcp-- -----traffic---- --sda--- --dfa--- --dfb--- --dfc--- --dm-0-- --dm-7-- --dm-8-- --dm-9-- -dm-10-- -dm-11-- -dm-12-- -dm-14-- -dm-24-- --dm-3-- --dm-2-- --dm-4-- -dm-15-- --dm-5-- -dm-16-- -dm-18-- -dm-17-- -dm-21-- -dm-19-- -dm-20-- --dm-1-- --dm-6-- -dm-13-- -dm-22-- -dm-23-- -dm-25-- -dm-28-- -dm-26-- -dm-27-- -dm-29-- -dm-30-- -dm-31--  ---load-
      Time                util     util   retran    bytin  bytout     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     util     load1
      30/03/21-17:09:13  21.32    56.40     0.00   949.00    5.4K     0.02     0.06     0.00     1.38     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.34     0.02     0.00     0.32     0.00     0.00     0.36     0.00     0.00     0.00     0.00     0.02     0.00     0.42     0.02     0.00     0.24     0.00     0.00     0.00     0.00     0.00     0.00     13.32
      30/03/21-17:09:18  21.46    56.41     0.00     4.4K   33.3K     1.42     0.00     0.00     0.92     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.28     0.00     0.00     0.38     0.00     0.00     0.30     0.00     0.00     0.00     0.00     0.00     0.00     0.26     0.00     0.00     0.14     0.00     0.00     0.00     0.00     0.00     0.00     12.74
      30/03/21-17:09:23  21.73    56.41     0.00   931.00    5.3K     0.00     0.04     0.00     1.12     0.00     0.00     0.00     0.00     0.00     0.00     0.02     0.00     0.00     0.26     0.00     0.02     0.40     0.00     0.00     0.40     0.00     0.00     0.00     0.00     0.00     0.00     0.28     0.00     0.00     0.20     0.00     0.00     0.00     0.00     0.00     0.00     12.68
      30/03/21-17:09:28  22.16    56.44     0.00    10.8K    5.1K     0.02     0.02     0.00     1.92     0.00     0.00     0.00     0.00     0.00     0.00     0.02     0.00     0.00     0.40     0.00     0.00     0.60     0.00     0.00     0.26     0.00     0.00     0.00     0.00     0.00     0.00     0.90     0.00     0.00     0.24     0.00     0.00     0.00     0.00     0.00     0.00     13.02
      30/03/21-17:09:33  21.07    56.44     0.00   863.00    5.3K     0.00     0.02     0.00     1.16     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.34     0.00     0.00     0.36     0.00     0.02     0.38     0.00     0.00     0.00     0.00     0.00     0.00     0.28     0.00     0.00     0.28     0.00     0.00     0.00     0.00     0.00     0.00     13.02
      30/03/21-17:09:38  21.21    56.45     0.00     2.3K    4.4K     0.02     0.08     0.00     1.02     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.36     0.00     0.02     0.38     0.00     0.00     0.16     0.00     0.00     0.00     0.00     0.06     0.00     0.26     0.00     0.00     0.16     0.00     0.00     0.00     0.00     0.00     0.00     13.02
      30/03/21-17:09:43  21.18    56.44     0.00     2.8K    5.2K     0.00     0.06     0.00     1.08     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.34     0.02     0.02     0.26     0.00     0.00     0.18     0.00     0.00     0.00     0.00     0.00     0.00     0.30     0.00     0.00     0.16     0.00     0.02     0.00     0.00     0.00     0.00     13.34
      30/03/21-17:09:48  20.99    56.44     0.00     2.3K    4.3K     0.00     0.02     0.00     0.98     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.22     0.00     0.00     0.32     0.00     0.00     0.34     0.00     0.00     0.00     0.00     0.00     0.00     0.20     0.02     0.00     0.10     0.00     0.00     0.00     0.00     0.00     0.00     13.07
      30/03/21-17:09:53  21.52    56.45     0.00   863.00    5.1K     0.02     0.02     0.00     0.96     0.00     0.00     0.00     0.00     0.00     0.00     0.02     0.00     0.00     0.30     0.00     0.00     0.30     0.00     0.00     0.20     0.00     0.00     0.00     0.00     0.00     0.00     0.26     0.00     0.00     0.20     0.00     0.00     0.00     0.00     0.00     0.00     13.39
      30/03/21-17:09:58  21.44    56.47     0.00     8.0K    4.5K     0.00     0.00     0.00     1.18     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.38     0.00     0.00     0.34     0.00     0.00     0.24     0.00     0.00     0.00     0.00     0.00     0.00     0.36     0.00     0.00     0.18     0.00     0.00     0.00     0.00     0.00     0.00     12.80
      30/03/21-17:10:03  24.46    56.48     0.00     1.1K    5.5K     0.00     0.02     0.00     1.26     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.30     0.00     0.00     0.34     0.00     0.02     0.28     0.00     0.00     0.00     0.00     0.00     0.00     0.50     0.00     0.00     0.18     0.00     0.00     0.00     0.00     0.00     0.00     13.02
      
      MAX                74.03    56.45     0.00    15.4M  186.1K    30.10    17.46   100.00    92.10     0.00     0.00     0.00     0.00     0.00     0.26    12.90     0.00     0.00     1.06     1.24     1.00     0.90     0.00     1.02     0.92     0.00    43.00     4.68   100.00     3.18    97.52    92.64     4.30   100.00    74.30    42.90     3.80   100.00     0.00     0.00     0.00     50.61
      MEAN               22.13    51.58     0.00    78.8K    7.5K     0.05     0.18     7.02     4.33     0.00     0.00     0.00     0.00     0.00     0.00     0.05     0.00     0.00     0.39     0.01     0.01     0.38     0.00     0.01     0.29     0.00     0.15     0.02     4.19     0.04     0.88     3.36     0.04     6.54     0.36     0.15     0.02     4.20     0.00     0.00     0.00     15.21
      MIN                16.19    48.24     0.00   642.00    3.9K     0.01     0.02     0.00     0.64     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.18     0.01     0.00     0.14     0.00     0.00     0.08     0.00     0.00     0.00     0.00     0.01     0.01     0.08     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00     0.00      9.37
      
  3. 检查内核问题。

    通过以下命令检查是否存在内核故障。

    如果出现形如 task xxx blocked for more than 120 seconds 的日志,则可能为内核故障。可以通过升级内核版本的方式解决该问题。

    [root@hostname /]# dmesg |grep blocked

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值