Oracle 开源了一个基于 BPF 的 Linux 参数自动调优工具 “bpftune”,这是一个自动配置器,可以监控 Linux 系统的工作负载并自动设置正确的内核参数值。
Linux 内核包含超过 1,500 个可调参数 ,bpftune 会随着系统的状态不断地自动调整多项参数,一切参数的更改都是轻量级且完全实时,无需重新启动设备即可生效。
其主要好处是:
- 使用 BPF(伯克利数据包过滤器)可观测性功能持续监控和调整系统行为。
- 由于可以使用 BPF 观察系统状态的更多细节,因此可以在细粒度级别调整系统行为。
目前 bpftune 可以自动调整的参数:
- Congestion tuner: 自动调节拥塞控制算法的选择。
- Neighbour table tuner: 在接近满载时通过增长表来自动调整 Neighbour table 的大小。
- Route table tuner: 在接近满时通过增长表来自动调整路由表大小。
- sysctl tuner: 监视 sysctl 设置,如果它与自动调整的 sysctl 值冲突,则禁用关联的调谐器。
- TCP buffer tuner: 自动调整最大和初始缓冲区大小。
- net buffer tuner: 自动调整与核心网络相关的可调参数。
- netns tuner: 监控网络命名空间的添加和删除,有助于增强 bpftune 整体的命名空间感知能力。
Oracle Linux 用户可以使用 DNF 包管理器轻松安装 bpftune。bpftune 代码在 GPLv2 许可下开源,可从 GitHub 仓库获取。