性能调优

返回 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文件页缓存
SwapUsedSwap 使用量

磁盘 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.conf

systemd 服务单独配置:

[Service]
LimitNOFILE=65535

相关文档