性能调优
→ 返回 Linux
CPU
uptime # load average:1/5/15 分钟平均负载
top # 实时 CPU 使用(按 P 排序)
mpstat -P ALL 1 # 每核 CPU 使用率(需 sysstat)
sar -u 1 5 # 每秒采样 5 次
pidstat -u 1 # 每个进程的 CPU 使用
ps aux --sort=-%cpu | head # CPU 占用 top 进程load average 判断:持续 > CPU 核心数说明 CPU 成为瓶颈。
内存
free -h # 内存总览
cat /proc/meminfo # 详细内存信息
ps aux --sort=-%mem | head # 内存占用 top 进程
# OOM 日志
dmesg | grep -i "oom\|killed"
journalctl -k | grep -i oom/proc/meminfo 关键字段:
| 字段 | 说明 |
|---|---|
| MemTotal | 总物理内存 |
| MemFree | 完全空闲 |
| MemAvailable | 实际可用(含可回收缓存) |
| Buffers | 块设备缓冲区 |
| Cached | 文件页缓存 |
| SwapUsed | Swap 使用量 |
磁盘 I/O
iostat -x 1 # 详细 I/O 统计(需 sysstat)
iotop # 按进程实时 I/O(需安装)关键指标:
| 指标 | 说明 |
|---|---|
%util | 设备繁忙程度,接近 100% 说明 I/O 饱和 |
await | 平均 I/O 等待时间(ms),机械盘 <20ms,SSD <1ms |
r/s w/s | 每秒读写次数 |
网络
iftop -i eth0 # 实时带宽(需安装)
nethogs # 按进程网络用量(需安装)
ss -s # 连接统计摘要
ss -tn state established | wc -l # 已建立连接数
ping -c 100 host | tail -2 # 丢包率
mtr host # 路由逐跳延迟与丢包综合监控(60 秒诊断清单)
uptime
dmesg | tail -5
vmstat 1 5
mpstat -P ALL 1 5
pidstat 1 5
iostat -xz 1 5
free -m
sar -n DEV 1 5
ss -s内核参数调优(sysctl)
sysctl vm.swappiness # 查看单项
sysctl -w vm.swappiness=10 # 临时修改
echo "vm.swappiness=10" >> /etc/sysctl.conf && sysctl -p # 永久修改常用参数:
# /etc/sysctl.conf
# 降低 Swap 使用倾向(SSD 服务器建议 10)
vm.swappiness = 10
# 文件描述符上限
fs.file-max = 1000000
# TCP 连接队列
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
# TIME_WAIT 重用
net.ipv4.tcp_tw_reuse = 1
# 本地端口范围
net.ipv4.ip_local_port_range = 1024 65535文件描述符限制
ulimit -n # 查看当前限制
ulimit -n 65535 # 临时修改
# 永久修改
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.confsystemd 服务单独配置:
[Service]
LimitNOFILE=65535