首页 帮助中心 常见问题 开机即用的省心调优:Tuned让服务器自己调性能
开机即用的省心调优:Tuned让服务器自己调性能
时间 : 2026-01-19 14:11:39
编辑 : 华纳云
阅读量 : 13

手动调整Linux服务器性能参数是个技术活,更是个耐心活。你得懂内核参数,知道调度器设置,还得根据具体负载反复测试。对于运维人员来说,时间往往耗在这些细节调整上。好在CentOSRHEL系统自带了一个叫Tuned的工具,它能自动化完成这些优化,根据你设定的场景自动应用合适的性能配置。

Tuned本质上是一个自适应系统调优服务。它内置了多种针对不同工作负载优化的配置方案,我们称之为“配置集”(profile)。这些配置集不是简单的一两个参数调整,而是涵盖CPU调度、磁盘I/O、电源管理、内核参数等多个方面的综合优化方案。服务启动后,Tuned会监控系统组件,并根据所选配置集动态调整设置,让服务器在不同负载下保持较佳状态。

安装Tuned相当简单,在CentOS 7/8RHEL 7/8及以上版本中,它通常已经预装。如果系统里没有,一条命令就能搞定。

sudo yum install tuned

安装完成后需要启动服务并设为开机自启。Tuned服务一旦运行,就会开始应用默认的配置集。

sudo systemctl start tuned

sudo systemctl enable tuned

现在来看看Tuned到底提供了哪些配置集。使用tuned-adm命令可以列出所有可用的选项。输出列表会显示每个配置集的名称和简单描述。常见的配置集包括balanced(平衡模式)、powersave(节能模式)、throughput-performance(吞吐性能模式)、latency-performance(延迟性能模式)等。每个配置集都针对特定场景做了预调优。

sudo tuned-adm list

系统默认使用的通常是balanced配置集。这个配置集在性能和功耗之间寻求平衡,适合大多数通用场景。它会在系统空闲时降低能耗,在检测到负载时提升性能。对于不确定服务器具体用途的情况,这是个安全的选择。

如果你想查看当前激活的是哪个配置集,可以用active子命令。

sudo tuned-adm active

切换配置集是Tuned的核心操作。比如你的服务器是台数据库主机,需要优化磁盘I/O和内存使用,那么throughput-performance配置集可能更合适。切换命令很直观。

sudo tuned-adm profile throughput-performance

执行后,Tuned会立即应用新配置集的所有优化参数。这些调整在运行时生效,无需重启服务。你可以马上运行工作负载,感受性能变化。这里有个细节要注意,Tuned的调整是动态的,但某些深度优化可能涉及内核参数修改,这些改动在重启后可能会被重置,不过Tuned会管理这些参数的持久化。

虚拟化环境有专门的优化配置集。virtual-guest配置集针对KVM虚拟机进行了优化,它会调整脏页回写参数、降低虚拟化开销。而virtual-host则对应宿主机节点的优化。如果你在虚拟化平台上部署系统,根据角色选择对应配置集往往能获得即时的性能提升。

# 对于KVM虚拟机

sudo tuned-adm profile virtual-guest

# 对于虚拟化宿主机

sudo tuned-adm profile virtual-host

除了使用内置配置集,你还可以创建自定义配置集。当内置选项都不完全符合需求时,这招特别有用。Tuned的配置集文件存放在`/usr/lib/tuned/``/etc/tuned/`目录下。自定义配置集最好在`/etc/tuned/`下新建目录,里面至少需要两个文件:tuned.conf主配置文件,以及可选的脚本文件。

举个例子,假如你需要一个为Web服务器优化的配置集,重点优化网络和文件系统。可以这样操作:先在`/etc/tuned/`下创建目录,然后编写配置文件。配置文件使用INI格式,[main]部分是摘要描述,其他段落定义具体优化。

sudo mkdir /etc/tuned/web-optimized

sudo vim /etc/tuned/web-optimized/tuned.conf

配置文件内容可以参照现有配置集,继承某个基础配置集再覆盖特定参数是常见的做法。下面的示例创建了一个基于throughput-performance但调整了网络参数的配置集。

[main]

summary=Optimized for web server workloads

include=throughput-performance

[sysctl]

net.core.somaxconn = 2048

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_fin_timeout = 30

[vm]

transparent_hugepages=always

保存配置文件后,这个新配置集就会出现在可用列表中,你可以像使用内置配置集一样激活它。

sudo tuned-adm profile web-optimized

如果遇到性能问题或者想恢复初始状态,Tuned也提供了简单的回退方法。revert子命令会停用所有Tuned调整,将系统恢复到服务启动前的状态。但这不会卸载Tuned,只是暂时关闭它的调优功能。

sudo tuned-adm off

要重新启用Tuned,只需要再次激活某个配置集即可。

监控Tuned的效果可以通过系统工具进行。在切换配置集前后,你可以用`perf``iostat``vmstat`等工具观察系统指标变化。Tuned自身也会在`/var/log/tuned/tuned.log`记录它的操作日志,遇到问题时可以在这里查找线索。

当然,Tuned不是万能的。它适合大多数通用场景和标准工作负载,但对于高度特化的应用,可能还需要手动微调。另外,Tuned的自动调整是启发式的,基于预设规则,可能无法完美适应所有动态变化的生产环境。在关键业务系统上应用新配置集前,建议在测试环境充分验证。

话说回来,Tuned的最大价值在于它降低了性能调优的门槛。你不需要成为内核专家,也能让服务器获得比较合理的优化配置。对于拥有多种类型服务器的环境,可以通过Tuned快速实现标准化配置。运维团队可以预先定义好几种配置集,然后根据服务器角色批量应用,确保性能设置的一致性。

从实际使用经验来看,对于刚部署的服务器,先应用一个与工作负载匹配的Tuned配置集是个好习惯。这相当于为系统打下了良好的性能基础。后续如果发现特定瓶颈,再在此基础上做精细调整。这种“基线优化+特定调整”的策略,往往比从零开始手动调参更高效。

所以,如果你的CentOSRHEL服务器还在使用默认内核参数,不妨花几分钟试试Tuned。从列出可用配置集开始,根据服务器用途选一个激活,或许就能看到性能的即时改善。在运维工作中,有时候最好的工具就是那些能把复杂任务简化的工具,Tuned恰好属于这一类。

相关内容
客服咨询
7*24小时技术支持
技术支持
渠道支持