应急预案:专有云内核参数优化方法
1. 概述
本文主要介绍在专有云环境中,pid_max
和nf_conntrack_max
内核参数的优化方法。
1.1. 适用范围
- 专有云V2,基础服务设备
- 专有云V3,基础服务设备
说明:
- 适用于专有云V2,V3版本的Docker宿主机。
nf_conntrack
参数适用于专有云V3环境的OPS服务器。在全新部署的专有云V3.6及之后的版本中,天基集群为7U的环境不需要修改参数,但升级到专有云V3.6及之后的版本需要修改参数。- 适用于所有5U、6U操作系统,但是不包含7U操作系统。
1.2. 用户告知
- 适用平台:x86
- 授权级别:L2(二线技术支持工程师)
- 临时或固化方案:固化
- 操作复杂度:低
- 业务影响:否
- 风险等级:低
说明:
- 在业务低峰期进行操作。
- 执行灰度策略时,建议逐台进行操作,中间间隔1个小时。修改下一台物理机参数时,需要登录上一台物理机执行
top
命令,验证top
命令是否可以正常执行,并且验证天目控制台和天基控制台的状态是否正常。 - 如果系统中的参数值高于本文涉及到的参数值,则不必进行更改。
- 如果系统中的参数值低于本文涉及到的参数值,则更改为本文涉及到的参数值。
- 本文中
net.netfilter.nf_conntrack_max
参数调整方法只适用于专有云V3环境的OPS1机器,其他Docker宿主机在专有云V3.6及之前的版本中没有net.netfilter.nf_conntrack_max
参数,可不必修改此参数值。 - 本文涉及到的IP地址等信息请根据现场实际情况进行设置。
kernel.pid_max
参数的推荐值为131072
,该参数限制了进程和线程打开数,解决messages
日志中cannot allocate memory
和error(can't fork)
的报错问题。如果系统达到pid_max
参数的推荐值会导致无法启动新进程和线程,并且导致Docker容器内服务无法正常工作,从而影响终态。net.netfilter.nf.conntrack_max
参数的推荐值为2097152
,该参数关联最大连接跟踪表,解决dmesg程序中的table full
和dropping packet
等问题。如果达到nf_conntrack.max
参数的推荐值,会无法执行某些ping操作,影响天基对集群物理机状态判断的准确性,从而影响终态。
2. 问题描述
在专有云环境中的5U、6U操作系统中,部分内核参数较小会影响系统的性能和功能,因此通过优化pid_max
和nf_conntrack_max
内核参数,以保障系统正常运行。
3. 解决方案
详情请参见以下KB文档。
- KB 107932 通用方案:专有云内核参数优化方法