温馨提示×

如何优化Linux性能

小樊
44
2026-07-28 15:49:44
栏目: 智能运维

优化 Linux 性能是一个系统性工程,需要从硬件、内核、系统配置、应用程序、监控分析等多个层面入手。以下是一个结构化的优化指南,涵盖常见场景和关键步骤:


一、性能优化基本思路

  1. 先测量,再优化(避免“拍脑袋”优化)
  2. 明确瓶颈(CPU / 内存 / 磁盘 / 网络 / 应用)
  3. 一次只改一个变量
  4. 记录优化前后的对比数据

二、性能监控与分析工具

1. 基础监控工具

工具 用途
top / htop 实时查看 CPU、内存、进程
vmstat 系统整体性能(CPU/内存/IO)
iostat 磁盘 IO 性能
free 内存使用
sar 历史性能数据(sysstat)
dstat 综合资源监控

2. 高级分析工具

工具 用途
perf CPU 性能分析
strace 系统调用追踪
bpftrace / eBPF 内核级性能分析
ss 网络连接状态
tcpdump 网络包分析

三、CPU 性能优化

1. 查看 CPU 使用

top
mpstat -P ALL 1

2. 常见优化点

  • 减少不必要的进程
systemctl disable 无用服务
  • 调整进程优先级
nice / renice
  • CPU 亲和性
taskset -c 0,1 command
  • 内核调度策略
  • 服务器:CFS(默认)
  • 实时系统:RT scheduler

四、内存性能优化

1. 查看内存

free -h
cat /proc/meminfo

2. 优化建议

  • 避免频繁 swap
swappiness=10
sysctl vm.swappiness=10
  • 释放缓存(谨慎)
echo 3 > /proc/sys/vm/drop_caches
  • 使用大页内存(数据库/虚拟化)
HugePages

五、磁盘 IO 优化

1. 查看 IO

iostat -x 1

2. 优化策略

  • 使用合适的 IO 调度器
cat /sys/block/sda/queue/scheduler
  • SSD:noop / deadline

  • HDD:mq-deadline

  • 文件系统选择 | 场景 | 推荐 | |----|----| | 通用 | ext4 | | 高性能 | xfs | | 容器 | overlayfs |

  • 挂载优化

noatime,nodiratime

六、网络性能优化

1. 查看网络

ss -antp
sar -n DEV 1

2. 优化点

  • 增大 socket 缓冲区
sysctl -w net.core.rmem_max=134217728
sysctl -w net.core.wmem_max=134217728
  • TCP 参数优化
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
  • 关闭反向解析
UseDNS no(sshd)

七、内核参数优化(sysctl)

常见优化示例:

fs.file-max = 1000000
net.ipv4.ip_local_port_range = 1024 65535
vm.swappiness = 10

应用:

sysctl -p

八、应用层优化建议

  • 数据库
    • 调整缓存、连接池
    • 避免全表扫描
  • Web 服务
    • Nginx:worker 进程数 = CPU 核数
    • 开启 gzip、缓存
  • 容器
    • 限制 CPU / 内存
    • 避免频繁创建销毁容器

九、系统启动与服务优化

systemctl list-unit-files --type=service
systemctl disable 不需要的服务

十、性能优化检查清单 ✅

  • [ ] 明确性能瓶颈
  • [ ] 使用专业工具分析
  • [ ] 检查 CPU / 内存 / IO / 网络
  • [ ] 调整内核参数
  • [ ] 优化应用配置
  • [ ] 记录优化前后数据

十一、常见误区 ❌

  • 盲目调大缓存
  • 不看负载就改内核参数
  • 过度优化导致稳定性下降
  • 忽略应用层问题

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

  • 服务器用途(Web / DB / 容器 / 桌面)
  • 系统版本
  • 当前性能问题表现

我可以给你一套针对性的优化方案

0