Skip to Main Content

内核参数vm.swappiness检查

巡检规则

本文中提及的 RocketMQ Copilot 术语是 AutoMQ Copilot for RocketMQ 的简称,均特指安托盟丘(杭州)科技有限公司面向 Apache RocketMQ 设计实现的消息队列智能辅助运维系统。

检测数据源

内核参数vm.swappiness检查的检测数据源是目标集群的操作系统信息,通过读取目标集群的操作系统配置,判断是否存在风险。

检测周期

  • 每 10 分钟一次。
  • 不可关闭。

异常检测逻辑


内核vm.swappiness参数 !=1,则产生异常事件。

事件和风险

RocketMQ Copilot 系统巡检会对检测不通过的规则产生异常事件和风险,异常事件遵循 概述▸

异常事件

异常风险

  • 关联的风险类型:内核 swappiness 配置过大。

风险分析

vm.swappiness 取值范围为 [0, 100],默认为 60,一个较小的值意味着内核会尽量避免使用 swap 空间,较大的值则意味着内存会尽量使用 swap 空间。

Broker 节点上 vm.swappiness 的值调得太大会导致 swap 时与 Broker 存在激烈的磁盘 IO 争抢。

在 Broker 启动前,通过执行 os.sh 中将 vm.swappiness 设置为 1。在 Linux Kernel 3.5 和以上版本,1 表示最小程度地使用 swap 空间,但是并不会完全禁用。

不要将 vm.swappiness 设置超过 10。

运维建议

建议 1:生产环境集群建议部署前执行 os.sh脚本优化内核参数

RocketMQ 安装脚本提供了内核参数调优脚本,生产集群部署时建议执行并优化参数。

建议 2:生产环境集群建议使用相同的调优完成的操作系统镜像部署

生产环境建议使用统一的调优完成的操作系统镜像,避免部分节点出现参数遗漏。