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. 环境检查
- 登录天基控制台,搜索dts_cluster集群,单击集群右侧的集群运维中心,选择dts-dts服务和DtsDrcCmha#服务角色,单击机器右侧的Terminal,登录对应的机器。
- 登录dts_drc_cmha容器,执行以下命令,查看HA服务的当前内存配置。
系统显示类似如下。grep "Xmx" /home/ds/ha/bin/haServer.sh
- 执行以下命令,查看CM服务的当前内存配置。
系统显示类似如下。grep Xmx /home/ds/cm/package/service.sh
- 执行以下命令,查看drc-cm的内存配置。
系统显示类如下。ps -ef | grep drc-cm
3.2. 实施步骤
调整CM和HA服务的内存配置
- 登录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]为当前时间。
- 编辑
haServer.sh
脚本,将-Xmx16g
修改为-Xmx1g
,保存并退出。 - 编辑
service.sh
脚本,将-Xmx4096m
修改为-Xmx2048m
,将-Xms4096m
修改为-Xms2048m
,将-Xmn2048m
修改为-Xmn1024m
,保存并退出。 - 执行以下命令,退出容器。
exit
重启DtsDrcCmha#服务角色
- 登录天基控制台,在服务框中搜索dts ,单击运维,进入服务运维页面。
- 在服务运维详情页面,单击服务实例,单击dts_cluster-A-XXXX-XXXX。
- 进入服务实例Dashboard页面,找到服务角色列表,单击DtsDrcCmha#服务角色右侧的详情按钮。
- 在机器信息表中,单击机器右侧的重启服务角色。
- 在弹出的确认页面中,确认目标机器无误后,单击确认。
3.3. 结果验证
确认DtsDrcCmha#服务角色已达终态
在天基控制中,确认DtsDrcCmha#服务角色已达终态。
确认修改符合预期
- 登录dts_drc_cmha容器,依次执行以下命令,确认CM和HA服务的内存配置,修改符合预期。
系统显示类似如下。grep 'Xmx' /home/ds/ha/bin/haServer.sh grep 'Xmx' /home/ds/cm/package/service.sh
- 执行以下命令,查看cm和ha进程的
-Xmx
配置,确认修改符合预期。
系统显示类似如下。ps -ef|grep java|grep -v "drc-cm"|grep "Xmx" --color
- 执行以下命令,查看drc-cm的内存配置,确认修改符合预期。
系统显示类如下。ps -ef | grep drc-cm
确认CM和HA服务运行正常
HA服务验证
执行以下命令,确认HA服务运行正常。
curl localhost:9999/env/cluster/status -s
系统显示类似如下,返回结果true
,表示HA服务运行正常。
CM服务验证
- 登录DTS运维控制台,选择集群管控>DRC控制台。
- 进入DRC控制台,单击集群右侧的选择。
- 查找对应的Topic名称,单击右侧的选择。
-
确认此页面中存在Topic和Store的信息,即表示CM服务正常。
4. 回滚方案
- 登录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