内核参数单个进程最大可打开的 fd 数检查
巡检规则
本文中提及的 RocketMQ Copilot 术语是 AutoMQ Copilot for RocketMQ 的简称,均特指安托盟丘(杭州)科技有限公司面向 Apache RocketMQ 设计实现的消息队列智能辅助运维系统。
检测数据源
内核参数单个进程最大可打开的 fd 数检查的检测数据源是目标集群的操作系统信息,通过读取目标集群的操作系统配置,判断是否存在风险。
检测周期
- 每 10 分钟一次。
- 不可关闭。
异常检测逻辑
内核文件句柄数配置 \< 655350,则产生异常事件。
事件和风险
RocketMQ Copilot 系统巡检会对检测不通过的规则产生异常事件和风险,异常事件遵循 概述▸ 。
异常事件
- 异常事件类型:copilot:cluster:BrokerProcessMaxFileDescriptorInspectionFailed
- 关于事件的详细 schema 定义,异常事件:内核单个进程最大可用 fd 数过小▸ 。
异常风险
- 关联的风险类型:内核单个进程最大可用 fd 数过小。
风险分析
Linux 中每个进程可打开的 fd(File Descriptor,文件描述符数)是有限的,默认值一般不会超过 1024。
如果最大可打开的 fd 数目太小,可能会导致打开文件报错,出现类似于 error: too many open files 的报错。
在 Broker 启动前,通过执行 os.sh 的建议调节至 655350,建议不要进行修改。
运维建议
建议 1:生产环境集群建议部署前执行 os.sh脚本优化内核参数
RocketMQ 安装脚本提供了内核参数调优脚本,生产集群部署时建议执行并优化参数。
建议 2:生产环境集群建议使用相同的调优完成的操作系统镜像部署
生产环境建议使用统一的调优完成的操作系统镜像,避免部分节点出现参数遗漏。