优化 Linux 性能是一个系统性工程,需要从硬件、内核、系统配置、应用程序、监控分析等多个层面入手。以下是一个结构化的优化指南,涵盖常见场景和关键步骤:
| 工具 | 用途 |
|---|---|
top / htop |
实时查看 CPU、内存、进程 |
vmstat |
系统整体性能(CPU/内存/IO) |
iostat |
磁盘 IO 性能 |
free |
内存使用 |
sar |
历史性能数据(sysstat) |
dstat |
综合资源监控 |
| 工具 | 用途 |
|---|---|
perf |
CPU 性能分析 |
strace |
系统调用追踪 |
bpftrace / eBPF |
内核级性能分析 |
ss |
网络连接状态 |
tcpdump |
网络包分析 |
top
mpstat -P ALL 1
systemctl disable 无用服务
nice / renice
taskset -c 0,1 command
free -h
cat /proc/meminfo
swappiness=10
sysctl vm.swappiness=10
echo 3 > /proc/sys/vm/drop_caches
HugePages
iostat -x 1
cat /sys/block/sda/queue/scheduler
SSD:noop / deadline
HDD:mq-deadline
文件系统选择 | 场景 | 推荐 | |----|----| | 通用 | ext4 | | 高性能 | xfs | | 容器 | overlayfs |
挂载优化
noatime,nodiratime
ss -antp
sar -n DEV 1
sysctl -w net.core.rmem_max=134217728
sysctl -w net.core.wmem_max=134217728
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
UseDNS no(sshd)
常见优化示例:
fs.file-max = 1000000
net.ipv4.ip_local_port_range = 1024 65535
vm.swappiness = 10
应用:
sysctl -p
systemctl list-unit-files --type=service
systemctl disable 不需要的服务
如果你愿意,可以告诉我:
我可以给你一套针对性的优化方案。