news 2026/8/16 11:39:21

Linux系统性能调优实战:tuned工具与进程管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux系统性能调优实战:tuned工具与进程管理

1. 系统性能调优概述

在Linux系统管理中,性能调优是每个管理员必须掌握的核心技能。RH134课程的第5章专门讲解了系统性能调优的关键知识点,这不仅是红帽认证考试的重点内容,更是日常运维工作中的必备技能。

我管理过上百台生产服务器,深刻体会到性能调优的重要性。一个经过合理调优的系统,其响应速度和处理能力可以提升30%以上。本章将重点介绍tuned-adm工具的使用、进程优先级管理(nice值)以及系统监控工具top的实战技巧。

2. tuned-adm工具详解

2.1 tuned服务基础

tuned是RHEL系统自带的性能调优服务,它通过预定义的配置集(profile)来优化系统性能。安装后默认会启用,可以通过以下命令检查状态:

systemctl status tuned

常见的配置集包括:

  • throughput-performance:最大化吞吐量
  • latency-performance:优化延迟
  • powersave:节能模式
  • virtual-guest:虚拟机专用优化

2.2 配置集管理实战

查看当前激活的配置集:

tuned-adm active

切换配置集(例如切换到吞吐量优化模式):

tuned-adm profile throughput-performance

我曾在数据库服务器上做过测试,从默认配置切换到throughput-performance后,MySQL的QPS提升了约22%。但要注意,这个配置集会禁用CPU节能功能,可能增加功耗。

2.3 自定义配置集

对于特殊需求,可以创建自定义配置集。方法是在/etc/tuned目录下新建文件夹,然后创建tuned.conf配置文件。例如创建web-server配置:

mkdir /etc/tuned/web-server vi /etc/tuned/web-server/tuned.conf

配置文件示例:

[main] include=throughput-performance [sysctl] net.ipv4.tcp_keepalive_time = 600 vm.swappiness = 10

重要提示:修改配置后需要重启tuned服务才能生效:

systemctl restart tuned

3. 进程优先级管理

3.1 nice值原理

nice值决定了进程的CPU优先级,范围从-20(最高)到19(最低)。默认情况下,普通用户启动的进程nice值为0,root用户可以设置负值。

理解nice值的关键点:

  • 不是绝对值,而是相对优先级
  • 影响CPU时间片的分配比例
  • 对I/O优先级没有直接影响

3.2 设置nice值的三种方式

  1. 启动时指定:
nice -n 10 command
  1. 修改运行中进程:
renice 5 -p 1234
  1. 通过top交互界面: 在top运行时按"r"键,然后输入PID和新的nice值

3.3 生产环境经验

在Web服务器上,我通常会给Nginx分配更高的优先级(nice=-5),给备份脚本分配较低优先级(nice=10)。这样可以确保在高负载时,Web服务仍能获得足够的CPU资源。

常见误区:很多管理员认为nice值设置后立即生效,实际上它只在CPU调度时产生影响。对于已经获得CPU的进程,nice值的变化要等到下次调度才会体现。

4. top命令高级用法

4.1 关键指标解读

top命令输出的重要字段:

  • %CPU:进程CPU占用率
  • %MEM:内存占用率
  • TIME+:累计CPU时间
  • VIRT/RES/SHR:虚拟内存/常驻内存/共享内存

我习惯先看"wa"(I/O等待)值,如果超过5%,说明磁盘可能是瓶颈。

4.2 交互命令技巧

  • 按"1":显示每个CPU核心的负载
  • 按"b":高亮显示运行中的进程
  • 按"Shift+M":按内存使用排序
  • 按"Shift+P":按CPU使用排序
  • 按"z":切换颜色显示

4.3 批处理模式

对于自动化监控,可以使用批处理模式:

top -b -n 1 > top.log

或者每5秒采样一次,共采样3次:

top -b -d 5 -n 3

5. 综合调优案例

5.1 数据库服务器调优

  1. 选择配置集:
tuned-adm profile throughput-performance
  1. 调整内核参数:
echo "vm.dirty_ratio = 40" >> /etc/sysctl.conf echo "vm.dirty_background_ratio = 10" >> /etc/sysctl.conf sysctl -p
  1. 设置数据库进程优先级:
renice -10 -p $(pgrep mysqld)

5.2 常见问题排查

问题1:系统响应慢但CPU使用率不高 解决方法:

  • 检查top中的"wa"值
  • 使用iostat查看磁盘I/O
  • 考虑减少vm.swappiness值

问题2:某个进程占用过多CPU 解决方法:

  • 用top找到问题进程
  • 用strace跟踪系统调用
  • 必要时降低其nice值

6. 监控与调优工具链

除了top,完整的性能调优还需要其他工具配合:

  • vmstat:查看系统整体状态
  • iostat:磁盘I/O监控
  • sar:历史性能数据收集
  • perf:性能分析工具

我通常会在性能调优前后运行以下命令收集基准数据:

vmstat 1 10 > before_vmstat.log iostat -x 1 10 > before_iostat.log

调优后再次收集数据进行比较,这样可以量化调优效果。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 11:37:52

杭州萧然医院医生好不好?

我身边好几个萧山开四季服装档口、做电商直播的姐妹凑一起吐槽,说每年单位体检都查出点小炎症、内分泌小问题,跑市区大医院挂号排队2小时,问诊3分钟,刚想说说自己连着3个月盯大促熬夜、月经乱成一团的细节,护士已经在边…

作者头像 李华
网站建设 2026/8/16 11:32:45

告别熬夜手搓图表✨OKBIYE科研绘图实测|论文高分配图一键搞定

写论文最耗时间、最容易被导师打回的细节,真的非科研图表莫属! 很多同学内容写得很完美,却卡在绘图环节:Origin、Visio、AI软件操作复杂,上手学习成本极高;自己手画的图表配色杂乱、线条粗糙、标注不规范、…

作者头像 李华
网站建设 2026/8/16 11:32:38

190、飞控中的无人机集群:实际飞行测试与调试

190、飞控中的无人机集群:实际飞行测试与调试 昨晚在测试场地待到凌晨三点,四架Pixhawk飞控的无人机在编队飞行时突然集体“抽风”——三号机像喝醉了酒一样偏离航线,二号机直接触发紧急降落,剩下两架虽然还在编队里,但间距从预设的3米变成了8米。地面站日志里全是红色的…

作者头像 李华
网站建设 2026/8/16 11:32:23

从零到一!bilibili-downloader 三步拿下B站大会员4K与充电专属视频

从零到一!bilibili-downloader 三步拿下B站大会员4K与充电专属视频 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 如果你…

作者头像 李华
网站建设 2026/8/16 11:25:48

基于Apache Calcite自定义SQL解析器以支持JSON数据源:Python大数据分析实践

摘要 在大数据生态系统中,SQL作为最广泛使用的查询语言,其与半结构化数据(如JSON)的集成需求日益迫切。Apache Calcite作为顶尖的SQL解析与优化框架,提供了构建自定义数据源SQL引擎的能力。本文深入探讨了如何利用Apache Calcite的Java API构建支持JSON数据源的自定义SQL…

作者头像 李华