linux的tuned服务介绍

tuned 是 RHEL/CentOS/Rocky Linux 的系统自动调优守护进程,根据预设配置文件批量调整内核参数、磁盘、网络、CPU 等设置。
tuned 本质上是一个参数管理框架,把最佳实践打包成 profile,一键应用。

一. 工作原理

tuned 启动

读取 /etc/tuned/tuned-main.conf

加载激活的 profile(配置文件)

通过插件系统修改系统参数

持续监控系统(动态模式下按负载调整)

二. 配置文件存放位置

/usr/lib/tuned/ # 系统内置 profile
/etc/tuned/ # 用户自定义 profile

三.常用命令
# 查看所有可用 profile
tuned-adm list

# 查看当前激活的 profile
tuned-adm active
cat /etc/tuned/active_profile

# 查看 tuned 做了哪些修改
tuned-adm profile_info

# 查看所有 profile
tuned-adm list

# 切换 profile
tuned-adm profile latency-performance

# 推荐最适合当前硬件的 profile
tuned-adm recommend

# 临时关闭 tuned(恢复默认)
tuned-adm off

# 启动/停止服务
systemctl start tuned
systemctl stop tuned

# 实时查看 tuned 的操作日志
journalctl -u tuned -f

四. 分析每个profile 的结构

# 以 latency-performance 为例
cat /usr/lib/tuned/latency-performance/tuned.conf

[main]
summary=Optimize for deterministic performance at the cost of increased power consumption

[cpu]
force_latency=1 # 禁止 CPU 进入低功耗状态
governor=performance # CPU 频率策略:始终最高频
energy_perf_bias=performance

[sysctl]
kernel.sched_min_granularity_ns=10000000 # 调度粒度
kernel.sched_wakeup_granularity_ns=15000000
vm.dirty_ratio=10
vm.dirty_background_ratio=3
vm.swappiness=10 # 减少 swap 使用倾向

# tuned 通过哪些方式修改系统(配置文件头)

企业微信截图_17757251408909

 

 


五. 常见 profile 对比

企业微信截图_17757252294724

 


六. 使用tuned修改内核参数 和直接改 sysctl 的区别

直接改 sysctl:
手动写参数,重启失效(除非写入 /etc/sysctl.conf)
需要自己知道每个参数

tuned:
选一个 profile,一键应用几十个参数
重启自动生效
可以动态监控负载自动调整
支持自定义 profile 继承和覆盖

 

 


七. 配置文件参数解析:
1. tuned-main.conf 解析
[root@test]# cat /etc/tuned/tuned-main.conf | grep -v '^#' | sed '/^$/d'
daemon = 1
dynamic_tuning = 0
sleep_interval = 1
update_interval = 10
recommend_command = 1
reapply_sysctl = 1
default_instance_priority = 0
udev_buffer_size = 1MB
log_file_count = 2
log_file_max_size = 1MB

企业微信截图_17757270566765

 

 

2.其他配置tuned.conf参数解析(自写)
1) [main] 基础配置
include=cpu-partitioning # 继承 cpu-partitioning profile
# 该 profile 包含 CPU 隔离、nohz 等基础配置

2) [disk] 磁盘调度
elevator=none # 磁盘 I/O 调度器设为 none(直通)
# 跳过内核 I/O 调度,减少延迟
# 适合 NVMe SSD(自带硬件队列)

 

3) [sysctl] 内核参数
①挂起任务超时
kernel.hung_task_timeout_secs = 600 # 任务挂起 600 秒才报警(默认 120)
# 低延迟系统避免误报

②NUMA 均衡(全部关闭)
kernel.numa_balancing = 0 # 关闭 NUMA 自动均衡
# 防止内核自动迁移内存页,引起延迟抖动
kernel.numa_balancing_scan_delay_ms = 1000
kernel.numa_balancing_scan_period_max_ms = 60000
kernel.numa_balancing_scan_period_min_ms = 1000
kernel.numa_balancing_scan_size_mb = 256
# 以上扫描参数虽然设置了,但 numa_balancing=0 已关闭,不生效

③ 看门狗
kernel.watchdog = 0
# 禁用硬件看门狗,避免产生 NMI 中断打扰隔离 CPU
kernel.watchdog_cpumask = CPU0
# 只监控 CPU 0
kernel.watchdog_thresh = 10
# 看门狗超时阈值 10 秒

④ 定时器迁移
kernel.timer_migration = 1
# 允许定时器迁移到空闲 CPU
# 防止定时器触发隔离 CPU 上的中断

⑤ 内存参数
vm.dirty_background_ratio = 3
# 脏页达到 3% 时后台开始写磁盘
vm.dirty_ratio = 10
# 脏页达到 10% 时强制同步写磁盘
vm.stat_interval = 3600
# 内存统计更新间隔 3600 秒(1小时)
# 默认 1 秒,高频更新会打扰隔离 CPU
vm.swappiness = 0
# 禁止使用 Swap,内存不够直接 OOM 而不换页
vm.zone_reclaim_mode = 0
# 禁用 NUMA zone 内存回收
# 防止跨 NUMA 内存操作引起延迟

posted @ 2026-04-09 18:25  铿锵有力自信且坚定  阅读(57)  评论(0)    收藏  举报