一般来说,在资源寸土寸金的服务器上,如果不合理调度资源,那么造成的浪费是很大的。然而有时候,即使资源调度合理,系统的性能还是不行。这是因为,我们并没有进行调优的步骤,导致系统在看不见的地方耗费本来应该分配给常用服务的资源,进而拉低整体性能。本节就来详细说说,如何完成这一步骤。
动态调优
初识 tuned
Linux 自带一个调优进程 tuned. 它的作用是根据当前用户的使用情况动态分配资源,并暂时禁用不必要的服务/进程。
然而,在默认情况下,动态调优是被禁用的。我们可以直接修改它的配置文件以启用它。具体来说,是 /etc/tuned/tuned-main.conf 文件的 dynamic_tuning 一行(0 表示被禁用):

tuned 预设配置集
其实,tuned 本身作为软件包,是有一系列预设的配置集的:
这样我们可以直接使用这些预设的配置集,无需手动修改参数。
在实际使用时,我们不需要记住这么多的名字(但是要知道它们的含义),因为它们都保存在 /usr/lib/tuned/profiles 或 /etc/tuned/profiles 目录下:

(请注意,在 RHEL 9 或更旧的系统内,路径里可能没有 profiles)
由于篇幅限制,这里就不展示具体的配置文件了。当然,如果经验丰富,你也可以创建自己的调优配置集,但最好放在 /etc/tuned/profiles 目录下。系统将遵循覆盖原则。
从命令行管理 tuned 配置集
Linux 系统内提供了一个叫做 tuned-adm 的命令方便我们更改 tuned 进程(严格的说,其实是守护进程,即 daemon)的设置。
如果要识别当前适配的调优配置集:
tuned-adm active如果要列出所有可用的调优配置集:
tuned-adm list要获取某个配置集(以 virtual-guest 为例)的有关信息:
tuned-adm profile virtual-guest如果不指定具体的配置集,则会显示当前配置集的信息。
当然,如果不知道应该选什么配置集好,可以向 tuned 获取建议:
tuned-adm recommended最后,如果不愿意使用 tuned,可以将其关闭:
tuned-adm off通过 Web 控制台管理
这种方法比较直接,但请确保你以管理访问模式设置,否则将无法更改。
为了访问 Web 控制台,你需要访问 http://<your_server_ip>:9090.
进程调优
在前面一篇文章中我们讲过,我们可以使用 nice 和 renice 调整进程的优先级。这边就不再赘述了。
但是,必须要指出的是,普通用户可以降低某个进程的优先级,而只有 root 用户才能提高优先级。
此外,nice 后接命令时,如果不手动指定优先级,那么创建的进程默认具有 10 的优先级。