通用方案:专有云V3环境如何修改dts_drc_cmha容器CM和HA服务的内存配置

通用方案:专有云V3环境如何修改dts_drc_cmha容器CM和HA服务的内存配置

更新时间:2020-06-11 17:42:18

1. 概述

本文主要介绍在专有云V3环境中,如何修改dts_drc_cmha容器CM和HA服务的内存配置。

1.1. 适用范围

  • 专有云V3,DTS

1.2. 用户告知

  • 操作方式:灰屏
  • 操作复杂度:低
  • 风险等级:低
    说明:修改配置之前请注意以下事项:
    • 两台同服务角色的容器均异常可直接进行操作。
    • 两台同服务角色的容器已有一个异常,先操作异常容器,正常后再操作另一个正常的容器。
    • 两台同角色的容器均正常,可轮流操作,一个正常后方可操作下一个。
    • 操作期间禁止客户端重启。
  • 此问题预计在V3.13版本修复,若现场环境进行升级、重拉容器、物理机克隆操作时配置会回滚。

2. 问题描述

在专有云V3环境dts_drc_cmha容器中,haServer.sh脚本中-Xmx参数的值为16,但是容器只有4GB内存。如果业务量处于高峰会出现申请不到内存的情况,可能出现HA进程被OOM或者夯机,ha.log日志不输出时,说明HA进程已经夯机。HA不可用影响订阅Partition的分配,订阅任务Client一旦重启,重新分配Partition,出现分配不到的情况。最终导致订阅任务消费位点不推进消费而没有数据。对于这个问题,暂时采用修改haServer.sh脚本中的-Xmx参数的值方式来解决此问题。该问题会在后期的版本彻底修复。

3. 解决方案

3.1. 环境检查

  1. 登录天基控制台,搜索dts_cluster集群,单击集群右侧的集群运维中心,选择dts-dts服务和DtsDrcCmha#服务角色,单击机器右侧的Terminal,登录对应的机器。
  2. 登录dts_drc_cmha容器,执行以下命令,查看HA服务的当前内存配置。
    grep "Xmx" /home/ds/ha/bin/haServer.sh
    系统显示类似如下。
    1.png
  3. 执行以下命令,查看CM服务的当前内存配置。
    grep Xmx /home/ds/cm/package/service.sh
    系统显示类似如下。
    3.png
  4. 执行以下命令,查看drc-cm的内存配置。
    ps -ef | grep drc-cm
    系统显示类如下。
    11111.png

3.2. 实施步骤

调整CM和HA服务的内存配置

  1. 登录dts_drc_cmha容器,依次执行以下命令,备份HA和CM服务的配置脚本。
    cp /home/ds/cm/package/service.sh /home/ds/cm/package/service.sh.[$Date]_bak 
    cp /home/ds/ha/bin/haServer.sh /home/ds/ha/bin/haServer.sh.[$Date]_bak
    说明:[$Date]为当前时间。
  2. 编辑haServer.sh脚本,将-Xmx16g修改为-Xmx1g,保存并退出。
    8.jpg
  3. 编辑service.sh脚本,将-Xmx4096m修改为-Xmx2048m,将-Xms4096m修改为-Xms2048m,将-Xmn2048m修改为-Xmn1024m,保存并退出。
    6.jpg
  4. 执行以下命令,退出容器。
    exit

重启DtsDrcCmha#服务角色

  1. 登录天基控制台,在服务框中搜索dts ,单击运维,进入服务运维页面。
  2. 在服务运维详情页面,单击服务实例,单击dts_cluster-A-XXXX-XXXX。
  3. 进入服务实例Dashboard页面,找到服务角色列表,单击DtsDrcCmha#服务角色右侧的详情按钮。
  4. 机器信息表中,单击机器右侧的重启服务角色
  5. 在弹出的确认页面中,确认目标机器无误后,单击确认
    1.png

3.3. 结果验证

确认DtsDrcCmha#服务角色已达终态

在天基控制中,确认DtsDrcCmha#服务角色已达终态。

确认修改符合预期

  1. 登录dts_drc_cmha容器,依次执行以下命令,确认CM和HA服务的内存配置,修改符合预期。
    grep 'Xmx' /home/ds/ha/bin/haServer.sh
    grep 'Xmx' /home/ds/cm/package/service.sh
    系统显示类似如下。
    {C56C21C5-538A-4A8A-A663-36C1B6861F45}_20200320160152.png
  2. 执行以下命令,查看cm和ha进程的-Xmx配置,确认修改符合预期。
    ps -ef|grep java|grep -v "drc-cm"|grep "Xmx" --color
    系统显示类似如下。
    3.png
  3. 执行以下命令,查看drc-cm的内存配置,确认修改符合预期。
    ps -ef | grep drc-cm
    系统显示类如下。
    88.png

确认CM和HA服务运行正常

HA服务验证

执行以下命令,确认HA服务运行正常。

curl localhost:9999/env/cluster/status -s

系统显示类似如下,返回结果true,表示HA服务运行正常。

4.png

CM服务验证
  1. 登录DTS运维控制台,选择集群管控>DRC控制台
  2. 进入DRC控制台,单击集群右侧的选择。
     {5C4C9878-C318-4B9C-870B-A2037113CBEF}_20200320163113.jpg
  3. 查找对应的Topic名称,单击右侧的选择
    {CAD19E0F-8EB6-47AC-A5CA-E5A293ACC6D0}_20200320164250.jpg
  4. 确认此页面中存在Topic和Store的信息,即表示CM服务正常。

    4444.png

4. 回滚方案

  1. 登录dts_drc_cmha容器,依次执行以下命令,将备份的脚本文件还原。
    cp /home/ds/cm/package/service.sh.[$Date]_bak /home/ds/cm/package/service.sh
    cp /home/ds/ha/bin/haServer.sh.[$Date]_bak /home/ds/ha/bin/haServer.sh
  2.  参见重启DtsDrcCmha#服务角色步骤,重新启动服务角色。