优化 Linux 服务器工作负载的调整配置文件
16 分钟阅读 - 2026年6月9日

如何为 GPU、数据库和高带宽 Linux 服务器选择、应用和定制经过调整的配置文件,并提供示例和 Ansible 部署技巧。
用于服务器工作负载优化的调优配置文件
Linux 的默认设置侧重于兼容性,而非性能。tuned 守护进程提供了预定义的配置文件,可调整 CPU 调度器、I/O 调度器、内核参数和网络缓冲区,以适应特定的工作负载。本文将介绍这些配置文件的工作原理、常见服务器角色应选择哪种配置文件,以及如何构建和部署自定义配置文件到整个服务器集群中。
预设配置文件的工作原理
配置文件是位于 /usr/lib/tuned/profiles/ (system) 或 /etc/tuned/profiles/ (custom) 目录下的子目录,其中包含一个 tuned.conf 文件。该配置文件按插件对参数进行分组: [cpu], [disk], [sysctl], [vm], [bootloader],以此类推。激活配置文件后,tuned 守护进程会一次性应用所有参数,而非分别运行数十个 sysctl 和 sysfs 命令。
配置文件可以通过 include 指令实现相互继承。例如, throughput-performance 配置文件,例如,可作为自定义数据库配置文件的基础,该文件仅覆盖 vm.swappiness Transparent Huge Pages 设置的自定义数据库配置文件的基础。
tuned 支持两种运行模式。静态调优在激活时一次性应用配置文件,之后不再干预系统,这适用于生产服务器——在这些场景中,一致性比节能更为重要。动态调优则实时监控磁盘、网络和负载使用情况,并即时调整设置。性能配置文件默认禁用动态调优,以避免监控带来的开销。
为您的工作负载选择合适的配置文件
tuned 提供了十余种配置文件,涵盖了最常见的工作负载。请选择与服务器实际功能相匹配的配置文件,而非保留默认 balanced 配置文件。
| 工作负载 | 配置文件 | 功能 |
|---|---|---|
| GPU 训练与推理 | accelerator-performance | 将 CPU 锁定在低功耗 C 状态,将 CPU 到 GPU 的延迟控制在 100 微秒以内 |
| 数据库(Postgres、MySQL、Redis) | throughput-performance | 禁用省电模式,优化磁盘和网络 I/O,禁用透明巨页 |
| 高带宽网络(CDN、复制、数据管道) | network-throughput | 扩大内核网络缓冲区以实现持续的高带宽传输 |
| 对延迟敏感的服务 | network-latency 或 latency-performance | 将 CPU 调度器锁定为 performance,禁用深度 C 状态 |
| HPC 和计算集群 | hpc-compute | 通过 NUMA 和内存调优提升延迟性能 |
| VPS 实例(客户机操作系统) | virtual-guest | 降低 swappiness,增加半虚拟化 I/O 的磁盘预读 |
| KVM 虚拟机管理程序主机 | virtual-host | 针对虚拟机工作负载调整脏页写回 |
| 混合或未知 | balanced | 默认设置。以性能为代价换取能效 |
针对特定数据库引擎,tuned 还提供了 postgresql, mssql,并 oracle 配置文件,这些配置文件通过 throughput-performance 通过调整这些引擎的共享内存和内核调度器参数,实现更深入的优化。
在多插槽服务器上,NUMA拓扑至关重要。远程节点的内存访问速度可能比本地访问慢两到三倍。对于双插槽服务器上的延迟敏感型工作负载,请在配置文件中禁用自动NUMA平衡,并手动将进程固定到特定节点。
安装和应用配置文件
在 RHEL、Rocky、AlmaLinux 或 Fedora 上安装 tuned:
dnf install tuned
systemctl enable --now tuned在 Debian 和 Ubuntu 上,该软件包也称为 tuned ,并通过 apt。如果 power-profiles-daemon 已运行,请将其屏蔽以避免冲突:
systemctl mask --now power-profiles-daemon列出可用配置文件,询问 tuned 针对当前硬件的推荐方案,应用配置文件并验证:
tuned-adm list
tuned-adm recommend
tuned-adm profile throughput-performance
tuned-adm verify当前配置文件存储在 /etc/tuned/active_profile 中,并在重启后保持有效。若要完全移除调优并测量基准值,请运行 tuned-adm off.
为 AI、ML 和高带宽工作负载构建自定义配置文件
当现成配置文件已满足 90% 的需求时,请创建一个自定义配置文件,使其继承最接近的配置文件,并覆盖剩余参数。首先创建一个目录和一个配置文件:
mkdir -p /etc/tuned/ai-gpu
cat > /etc/tuned/ai-gpu/tuned.conf <<'EOF'
[main]
summary=Custom profile for GPU training with high-bandwidth networking
include=accelerator-performance
[cpu]
governor=performance
[sysctl]
kernel.numa_balancing=0
net.core.rmem_max=268435456
net.core.wmem_max=268435456
net.ipv4.tcp_rmem=4096 87380 268435456
net.ipv4.tcp_wmem=4096 65536 268435456
[vm]
transparent_hugepages=never
[bootloader]
cmdline=hugepagesz=2M hugepages=16384 <a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit">iommu</a>=pt
EOF
tuned-adm profile ai-gpu此处的关键选项:
numa_balancing=0阻止内核在训练过程中在插槽之间迁移内存,这是双插槽 GPU 系统中常见的性能瓶颈。- 该
rmem_max和tcp_rmem参数将插槽缓冲区上限提升至256MB。在训练节点间采用25G、40G或100G互连时,默认缓冲区大小会导致吞吐量远低于线速。 transparent_hugepages=never可消除 THP 对于 PyTorch 和 TensorFlow 等分配大型张量的框架所造成的延迟抖动。iommu=pt将 IOMMU 置于直通模式,这是实现 GPU 和网卡直通所必需的,并可降低裸机 DMA 的开销。
低于 [bootloader] 需重启系统。启用配置文件后,请运行 tuned-adm verify 以确认运行时参数已生效,并检查 journalctl -u tuned 是否存在错误。使用 iostat -xz, numastat以及相关工作负载工具(iperf3, fio或实际训练运行)进行前后基准测试。
有一项权衡值得明确说明:禁用 CPU 安全缓解措施可在 GPU 工作负载上提升约 3-8% 的性能,但在系统调用模式密集的工作负载上会造成 15-30% 的性能损失。请根据该服务器的威胁模型做出决策。在防火墙后方的专用训练集群内,通常从性能角度考虑更倾向于禁用这些措施。 在多租户主机上,请保持这些功能启用。
管理服务器集群中的配置文件
当服务器数量超过少数几台时,手动配置 tuned 便不再可行。Ansible 能干净利落地处理此问题。只需一个 playbook 即可安装 tuned,并将自定义配置文件目录放置于 /etc/tuned/ ,并通过 template 模块,并根据库存组应用相应的配置文件。
将配置文件映射到库存中的角色:
- GPU 和 AI 节点:
accelerator-performance,或继承自该配置文件的自定义配置文件 - 数据库服务器:
throughput-performance或特定引擎的配置文件 - 传输高带宽流量的 CDN 和边缘节点:
network-throughput - 位于负载均衡器后方的 API 和 Web 服务器:
network-latency - VPS 和 KVM 虚拟机:
virtual-guest - 虚拟机管理程序主机:
virtual-host
配置漂移才是真正的运维难题。手动 sysctl 更改、包含新默认值的软件包升级,或是其他配置管理工具覆盖了 Tuned 的设置,都会导致配置偏离配置文件的规定。请安排 Ansible 任务定期运行 tuned-adm active 并 tuned-adm verify 在 cron 上运行,并在失败时触发警报。留意 /var/log/tuned/tuned.log “验证失败”的日志行。
结论
tuned 消除了内核和 sysctl 调优中的大部分猜测工作。默认设置已足以满足一般用途,而针对特定工作负载的配置文件(如 accelerator-performance, throughput-performance以及 network-throughput 等针对特定工作负载的配置文件,能让您在无需编写任何配置文件的情况下,基本实现系统优化。
- 选择最接近的默认配置文件,运行
tuned-adm verify,然后进行基准测试 - 通过继承默认配置文件并仅覆盖所需项来构建自定义配置文件
- 在 GPU 和高带宽服务器上,需有针对性地调整 NUMA 平衡、大页面以及网络缓冲区大小
- 使用 Ansible 进行部署,并按计划进行审计以发现配置漂移
需要具备带宽冗余的裸机容量来实际应用这些配置?请联系 FDC,了解专为高吞吐量和 GPU 工作负载打造的专用服务器。

VPS 的 Linux OOM 杀手调整:实用指南
调整 VPS 上的 Linux OOM 杀手,保护数据库和 SSH,使用 cgroups 封顶失控进程,阻止错误服务被杀死。
12 分钟阅读 - 2026年6月8日
Linux 流量控制 (tc):实用指南
12 分钟阅读 - 2026年6月5日