温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何优化linux性能

发布时间:2026-09-11 06:28:12 来源:亿速云 阅读:94 作者:小樊 栏目:系统运维

优化 Linux 性能是一个系统性工程,通常遵循 “先观测、再定位、后优化” 的原则。下面从 方法论 → 核心维度 → 常用工具 → 典型优化点 四个层面给你一个清晰、可落地的指南。


一、性能优化基本方法论

  1. 明确目标
    • 是 CPU 密集型?IO 密集型?还是网络/延迟敏感?
  2. 建立基线
    • 优化前后必须有量化指标(QPS、P99 延迟、CPU%、iowait)
  3. 逐层排查
    应用层 → 系统调用 → 内核 → 硬件
    
  4. 一次只改一个变量
    • 避免“玄学调参”

二、Linux 性能核心维度

1️⃣ CPU 性能优化

关注指标

  • us(用户态)、sy(内核态)、wa(IO 等待)
  • 上下文切换(context switch)
  • 中断(softirq / hardirq)

常见优化

  • 绑核(CPU affinity)
    taskset -c 0,1 ./app
    
  • 调整进程优先级
    nice / renice
    
  • 减少系统调用(批量写入、缓存)
  • 开启 NUMA 亲和(大内存服务)
    numactl --cpubind=0 --membind=0
    

2️⃣ 内存性能优化

关注指标

  • free -h
  • cache / buffer
  • swap 使用
  • OOM / 内存碎片

常见优化

  • 关闭或减小 swap(延迟敏感服务)
    sysctl vm.swappiness=10
    
  • 使用 hugepages(数据库、DPDK)
  • 避免内存泄漏(valgrind / pprof)
  • 控制 dirty_ratio
    sysctl vm.dirty_ratio=10
    

3️⃣ 磁盘 IO 优化

关注指标

  • iostat -x 1
  • await, svctm, %util
  • IO 队列深度

常见优化

  • 使用 SSD / NVMe
  • 文件系统选择
    • ext4(通用)
    • xfs(大文件)
    • btrfs(快照)
  • IO 调度器
    echo mq-deadline > /sys/block/sda/queue/scheduler
    
  • 异步 IO(io_uring)
  • 合理 mount 参数
    noatime,nodiratime
    

4️⃣ 网络性能优化

关注指标

  • 带宽、PPS、重传率
  • netstat -tnp
  • ss -tanp

常见优化

  • 调整 TCP 参数
    net.ipv4.tcp_tw_reuse = 1
    net.core.somaxconn = 65535
    net.ipv4.tcp_max_syn_backlog = 8192
    
  • 多队列网卡 + RPS/RFS
  • 使用 SO_REUSEPORT
  • 零拷贝(sendfile / splice)

5️⃣ 内核 & 系统参数优化

sysctl -a | grep xxx

常用:

fs.file-max = 1000000
kernel.pid_max = 65535
vm.overcommit_memory = 1

三、性能观测工具箱(必会)

基础

  • top / htop
  • vmstat 1
  • iostat -x 1
  • free -h

高级(强烈推荐)

  • perf(CPU 热点)
  • strace(系统调用)
  • bpftrace / eBPF
  • sar(历史趋势)
  • dstat

四、典型场景优化示例

场景 1:Web 服务 CPU 高

✅ 检查:

  • perf top
  • 是否频繁 GC / 锁竞争

✅ 优化:

  • 减少锁
  • 开启连接复用
  • 绑核

场景 2:数据库慢

✅ 检查:

  • iowait
  • 缓存命中率

✅ 优化:

  • 加大 innodb_buffer_pool
  • 使用 NVMe
  • 调整 IO 调度器

场景 3:高并发网络服务

✅ 优化:

  • somaxconn
  • reuseport
  • 多队列网卡

五、一句话总结

Linux 性能优化 = 正确的观测 + 最小的改动 + 可量化的收益

如果你愿意,可以告诉我:

  • 是 服务器 / 嵌入式 / 云环境
  • 主要跑什么(MySQL / Nginx / 自研服务)
  • 当前瓶颈现象(CPU 高 / IO 卡 / 延迟大)

我可以直接给你 针对性的调优清单。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手