红帽企业 Linux 系统性能调优指南
系统性能调优旨在帮助管理员通过合理配置参数与调整进程优先级,提升系统运行效率。本章核心围绕tuned 调优配置文件设置与进程调度优化两大方向展开,为不同场景下的系统性能优化提供了可落地的解决方案。
一、tuned 调优:基于配置文件的系统优化
tuned 是 RHEL 9.0 中用于系统性能调优的核心工具,通过预定义的调优配置文件,以静态和动态两种方式适配不同工作负载。静态调优在服务启动或切换配置文件时生效,主要用于设置内核参数;动态调优则实时监控系统活动,根据运行行为调整设置,确保资源分配始终匹配需求。
1. tuned 的安装与启用
默认情况下,RHEL 9.0 的最小安装已包含并启用 tuned 软件包。若需手动操作,可通过以下命令完成安装与启用,确保服务开机自启并立即运行:
[root@host ~]# dnf install tuned
[root@host ~]# systemctl enable --now tuned
执行后会创建服务软链接,确认 tuned 服务纳入多用户目标的启动依赖中。
2. 调优配置文件:适配不同场景需求
tuned 的配置文件存储于两个目录,/usr/lib/tuned(默认系统配置,禁止直接修改)和 /etc/tuned(自定义或当前生效配置),每个配置文件对应独立目录,包含tuned.conf
及可选辅助文件。不同配置文件针对特定场景优化,核心用途如下表所示:
调优配置文件 | 核心用途 |
---|---|
balanced | 平衡节能与性能,适用于大多数通用场景 |
powersave | 最大化节能,适合笔记本等移动设备或低负载待机系统 |
throughput-performance | 追求最大系统吞吐量,优先保障数据处理效率 |
accelerator-performance | 基于 throughput-performance,额外将延迟缩短至 100 微秒以下 |
latency-performance | 牺牲能耗换取低延迟,适用于对响应速度敏感的服务器(如数据库) |
network-latency | 衍生自 latency-performance,增加网络调优参数,降低网络延迟 |
network-throughput | 衍生自 throughput-performance,强化网络参数,提升网络吞吐量 |
desktop | 基于 balanced,加快交互式应用(如办公软件)的响应速度 |
hpc-compute | 衍生自 latency-performance,适配高性能计算(HPC)场景 |
virtual-guest | 针对虚拟机内运行的系统,优化虚拟机性能 |
virtual-host | 针对作为虚拟机主机的系统,提升多虚拟机并发运行效率 |
intel-sst | 适配 Intel Speed Select Technology,作为其他配置的覆盖层 |
optimize-serial-console | 提高串行控制台响应能力,作为其他配置的覆盖层 |
以virtual-guest
配置为例,其tuned.conf
包含对内存与交换分区的优化,如将vm.dirty_ratio
设为 30%(触发写回的脏数据比例)、vm.swappiness
设为 36(降低交换分区使用频率,优先使用文件系统 I/O),确保虚拟机内系统资源利用更高效。
3. 配置文件的管理方式
(1)命令行管理:灵活切换与查看
通过tuned-adm
命令可完成配置文件的查看、切换、推荐及停用,核心操作如下:
查看当前活跃配置:
[root@host ~]# tuned-adm active
列出所有可用配置:
[root@host ~]# tuned-adm list
切换配置文件(如切换至 throughput-performance):
[root@host ~]# tuned-adm profile throughput-performance
推荐适配当前系统的配置:
[root@host ~]# tuned-adm recommend
(如虚拟机系统会推荐 virtual-guest)停用 tuned 调优:
[root@host ~]# tuned-adm off
(停用后无活跃配置,系统恢复默认设置)
(2)Web Console 管理:可视化操作
通过 Web Console(需管理员权限)可直观管理调优配置。登录后进入 “System information” 或 “Configuration” 模块,在 “Performance profile” 选项中查看当前配置,点击切换即可选择目标配置文件,无需记忆命令,适合图形化操作偏好的管理员。
二、进程调度优化:通过 nice/renice 调整优先级
Linux 采用 “时间分片(time-slicing)” 技术实现多任务,进程调度程序在 CPU 核心间快速切换进程,营造 “并行运行” 的效果。而进程优先级(nice 值)决定了 CPU 资源的分配权重,是优化进程响应速度的关键。
1. 进程优先级的核心规则
Linux 中进程优先级通过nice 值定义,核心特性如下:
取值范围:-20(最高优先级)~19(最低优先级),共 40 个级别;
默认值:进程继承父进程的 nice 值,通常为 0(如 shell 启动的进程默认 nice 值为 0);
优先级逻辑:nice 值越低,进程越 “不倾向于让出 CPU”,优先获得资源;nice 值越高,进程越 “容易让出 CPU”,资源分配优先级低;
资源争用影响:若 CPU 核心数多于活跃进程数(无资源争用),即使高 nice 值进程也会占用全部可用 CPU。
此外,大多数进程采用SCHED_NORMAL
(也称SCHED_OTHER
)调度策略,nice 值仅对该策略生效;其他调度策略(如实时调度)的进程优先级更高,nice 值显示为 “-”。
2. 权限控制:确保优先级调整安全
root 用户:拥有完整权限,可降低或提高任意进程的 nice 值(如将 nice 值从 10 调整为 - 5,或从 0 调整为 15);
普通用户:仅能提高自身进程的 nice 值(如从 0 调整为 10),无法降低优先级,避免普通用户抢占系统核心资源。
3. nice 值的查看与调整
(1)查看 nice 值:多工具支持
top 命令:交互式查看进程信息,“NI” 列显示 nice 值,“PR” 列显示映射后的优先级(nice 值 - 20 对应 PR 值 0,nice 值 19 对应 PR 值 39),同时可实时监控 CPU、内存占用;
ps 命令:列出进程详情并按 nice 值排序,例如以下命令显示所有进程的 PID、名称、nice 值及调度类型(“CLS” 列中 “TS” 表示
SCHED_NORMAL
策略):[user@host ~]$ ps axo pid,comm,nice,cls --sort=-nice
(2)调整 nice 值:启动时与运行中
启动时设置(nice 命令):通过
nice
命令在进程启动时指定 nice 值,默认增加 10(即 nice 值为 10),-n
选项可自定义数值。例如:# 默认nice值10启动sleep进程 [user@host ~]$ nice sleep 60 & # 自定义nice值15启动sleep进程 [user@host ~]$ nice -n 15 sleep 60 &
运行中调整(renice 命令 /top 交互):对已启动的进程,可通过
renice
命令修改 nice 值,或在 top 界面按 “r” 键进入交互模式,输入 PID 和新 nice 值。例如:# 将PID为2740的进程nice值从15调整为19 [user@host ~]$ renice -n 19 2740
三、性能调优总结
RHEL 9.0 的系统性能调优围绕 “资源匹配需求” 核心目标,通过 tuned 与进程优先级调整形成互补:
tuned 调优:基于预定义配置文件,实现系统级资源(CPU、内存、网络)的批量优化,适配通用或特定场景(如虚拟机、高性能计算),无需逐一调整参数;
进程优先级调整:针对单个关键进程(如核心业务程序),通过 nice/renice 精细控制 CPU 资源分配,确保高优先级进程优先获得响应,提升业务体验;
恢复与切换:若需撤销调优效果,可切换 tuned 配置文件或停用 tuned 服务;进程优先级调整后,仅需重新设置 nice 值即可恢复默认状态。
掌握这两种调优方式,可帮助管理员根据实际业务场景(如通用办公、服务器、虚拟机)灵活配置系统,在性能、节能、延迟等需求间找到最佳平衡,最大化红帽企业 Linux 系统的运行效率。