作为IT工程师,以下是我总结的Linux系统性能优化方案,涵盖多个关键方面:
首先需要识别瓶颈:
# 基本监控工具
top # 实时系统监控
htop # 增强版top
vmstat 1 # 虚拟内存统计
iostat 1 # I/O统计
sar # 系统活动报告
dstat # 综合监控工具
# 网络监控
iftop # 实时网络带宽监控
nethogs # 按进程统计网络使用
# 高级分析
perf # 性能计数器分析
strace # 系统调用跟踪
调整/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
bash
echo noop > /sys/block/sda/queue/scheduler
bash
fstrim -v /
noatime,nodiratime
)taskset
或cgroups
绑定进程到特定CPU核心nice
和renice
)irqbalance
优化中断分配bash
echo never > /sys/kernel/mm/transparent_hugepage/enabled
cgroups
或ulimit
)conf
net.ipv4.tcp_fastopen = 3
# 性能分析
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
记住:优化前先测量,一次只改一个参数,并监控变化效果。不同工作负载需要不同的优化策略。