插件窝 干货文章 如何在Linux上优化系统性能

如何在Linux上优化系统性能

优化 系统 使用 监控 862    来源:    2025-04-15

Linux系统性能优化指南

作为IT工程师,以下是我总结的Linux系统性能优化方案,涵盖多个关键方面:

1. 系统监控与分析工具

首先需要识别瓶颈:

# 基本监控工具
top        # 实时系统监控
htop       # 增强版top
vmstat 1   # 虚拟内存统计
iostat 1   # I/O统计
sar        # 系统活动报告
dstat      # 综合监控工具

# 网络监控
iftop      # 实时网络带宽监控
nethogs    # 按进程统计网络使用

# 高级分析
perf       # 性能计数器分析
strace     # 系统调用跟踪

2. 内核参数优化

调整/etc/sysctl.conf中的参数:

# 网络优化
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# 内存管理
vm.swappiness = 10          # 减少交换分区使用
vm.dirty_ratio = 40         # 脏页比例阈值
vm.dirty_background_ratio = 10

# 文件系统
fs.file-max = 2097152       # 最大文件描述符数

应用修改:sysctl -p

3. 磁盘I/O优化

  • 使用更快的文件系统(如XFS或ext4)
  • 调整I/O调度器(对SSD使用noop或deadline): bash echo noop > /sys/block/sda/queue/scheduler
  • 启用TRIM(SSD): bash fstrim -v /
  • 调整文件系统挂载选项(noatime,nodiratime

4. CPU与进程优化

  • 使用tasksetcgroups绑定进程到特定CPU核心
  • 调整进程优先级(nicerenice
  • 禁用不必要的服务和守护进程
  • 使用irqbalance优化中断分配

5. 内存优化

  • 调整透明大页(THP): bash echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • 优化内存分配策略
  • 监控和限制内存使用(cgroupsulimit

6. 网络优化

  • 调整TCP缓冲区大小
  • 启用TCP快速打开: conf net.ipv4.tcp_fastopen = 3
  • 优化NIC设置(启用GRO、TSO等)
  • 考虑使用更高效的网络协议栈(如DPDK)

7. 安全与性能平衡

  • 调整SELinux/AppArmor策略
  • 优化防火墙规则(减少iptables/nftables规则数量)
  • 禁用不必要的安全模块

8. 应用层优化

  • 调整Web服务器配置(Nginx/Apache worker数量)
  • 优化数据库配置(MySQL/PostgreSQL缓冲池大小)
  • 使用更高效的编程语言运行时

9. 定期维护

  • 设置日志轮转(logrotate)
  • 定期清理临时文件
  • 监控和更新系统

高级工具

# 性能分析
perf stat -a sleep 10      # 系统级统计
perf record -g -p <PID>    # 进程级采样

# 火焰图生成
git clone https://github.com/brendangregg/FlameGraph
perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > perf.svg

记住:优化前先测量,一次只改一个参数,并监控变化效果。不同工作负载需要不同的优化策略。