​全面覆盖CPU/内存/磁盘/网络四大子系统调优方案​


一、系统性能监控核心工具精解
1. CPU性能分析三板斧
# 1. 实时查看CPU负载趋势(关键指标:15分钟平均负载 > CPU核心数预警)
uptime  
12:30:01 up 15 days,  3:21,  2 users,  load average: 1.25, 0.98, 0.75

# 2. 动态监控进程CPU占用(按P键排序)
top - 12:32:45 up 15 days, %Cpu(s): 15.3 us,  2.1 sy,  0.0 ni, 82.4 id

# 3. 多核CPU详细状态分析(每2秒采样,共5次)
mpstat -P ALL 2 5
CPU   %usr  %sys  %iowait  %irq  %soft %idle  
0     18.2   1.2    12.1    0.0    0.3   68.2  
1     9.8    0.8     3.1    0.0    0.1   86.2

​关键指标解读​​:

  • %iowait > 20%→ 磁盘I/O瓶颈

  • %sys持续偏高→ 内核态调用频繁

  • 1分钟负载 > CPU核心数→ 系统过载警告

  • ​调优决策树​​:

    graph TD
      A[高%us] --> B[优化应用程序]
      A --> C[增加CPU核心]
      D[高%sy] --> E[检查系统调用]
      D --> F[升级内核]
      G[高%iowait] --> H[优化磁盘I/O]
2. 内存分析实战技巧
# 1. 快速查看内存利用率(-m单位MB)
free -m
              total   used    free   shared  buff/cache  available
Mem:           7924    512     634      120        6778       7012

# 2. 精确诊断内存泄漏(按内存占用排序)
ps -aux --sort -rss | head -5
USER  PID %CPU %MEM   VSZ   RSS COMMAND  
mysql 101  32   18%  3.2G  1.4G /usr/sbin/mysqld

​内存黄金指标​​:

  • available:真实可用内存(含可回收缓存)

  • RSS:进程实际物理内存占用

  • Swap使用 > 0→ 物理内存不足警告

3. 磁盘I/O性能深度检测
# 1. 实时追踪I/O瓶颈进程
iotop -o -d 2
TID  PRIO USER   DISK READ DISK WRITE SWAPIN  IO>   COMMAND  
451  be/4 root   162.5 M/s  0.0 B/s  0.0 % 85.5 % dd if=/dev/zero

# 2. 磁盘吞吐性能测试(绕过缓存,真实速度)
dd if=/dev/zero of=/data/test bs=1G count=2 oflag=direct
2+0 records in
2147483648 bytes (2.1 GB) copied, 9.2 s, 233 MB/s

​磁盘性能核心参数​​:

  • ​块大小优化​​:tune2fs -l /dev/sda1 | grep "Block size"(默认4K)

  • ​IOPS vs 吞吐量​​:

    • 随机小文件 → 关注IOPS(iostat -x 1

    • 大文件拷贝 → 关注MB/s(dd测试

4. 网络流量监控方案
# 1. 实时带宽监控(动态图表)
nload  
Device eth0 [192.168.1.10] (1/2): 
Incoming:  ↓ 45.8 Mbps  # 实时入流量
Outgoing:  ↑ 12.3 Mbps  # 实时出流量

# 2. 进程级网络流量追踪
nethogs
PID    User  Program      Sent    Received  
2201   nginx  nginx        1.2MB    45MB

二、生产环境调优实战
1. CPU资源精细化管理
# 调整进程优先级(-20最高,19最低)
nice -n -15 /opt/app/server  # 启动高优先级服务
renice -n 10 22541          # 降低已运行进程优先级

# 绑定进程到指定CPU核心
taskset -cp 0,2 22541       # 限制进程使用CPU0和CPU2

​调度策略选择​​:

  • ​CPU密集型​​:CFS公平调度(默认)

  • ​实时任务​​:chrt -f 1 /opt/real_time_app(FIFO调度)

2. 磁盘I/O优化四步法
1. **调整I/O调度器**  
   `echo deadline > /sys/block/sda/queue/scheduler`

2. **增大文件句柄限制**  
   `/etc/security/limits.conf:  
   * soft nofile 100000  
   * hard nofile 100000`

3. **启用Direct I/O**  
   `mount -o remount,direct /data`

4. **SSD特别优化**  
   `echo noop > /sys/block/nvme0n1/queue/scheduler`
3. 内核级网络优化
# 防御SYN洪水攻击(/etc/sysctl.conf)
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 20480
net.ipv4.tcp_synack_retries = 0

# 高并发连接优化
net.core.somaxconn = 65535
net.ipv4.ip_local_port_range = 10000 65000

​生效配置​​:sysctl -p


三、性能瓶颈分析决策树

症状

检测工具

优化方案

CPU持续100%

top→按P

1. 进程优先级调整
2. CPU亲和性绑定

内存不足频繁OOM

free -h

1. 清理缓存echo 3 > /proc/sys/vm/drop_caches
2. 限制进程内存cgroups

磁盘响应慢

iostat -x 1

1. 更换I/O调度器
2. 启用文件系统barrier

网络丢包

sar -n DEV 1

1. 网卡bonding
2. 调整TCP缓冲区大小


四、企业级监控方案推荐
1. 长期性能趋势分析
# 每10分钟采集系统指标
*/10 * * * * /usr/lib64/sa/sa1

# 生成昨日CPU报告
sar -u -f /var/log/sa/sa15
2. 关键指标告警阈值

指标

警告阈值

严重阈值

CPU负载

核心数×2

核心数×4

内存可用量

<总内存20%

<总内存10%

磁盘%util

>70%持续5分钟

>90%

TCP重传率

>1%

>5%


五、总结:性能调优黄金法则
1. **监控先行原则**  
   ➤ 基础命令:`vmstat 1` `mpstat -P ALL 1`  
   ➤ 长期监控:`sar -o /var/log/sa/sa$(date +%d)`  

2. **瓶颈定位四象限**

CPU: us% > 70% → 应用优化 | sy% > 20% → 内核/驱动优化

内存:available < 10% → 扩容 | swap使用 > 0 → 紧急处理

磁盘:await > 10ms → 存储优化 | %util > 70% → 升级硬盘

网络:retrans > 1% → 网络排查 | drop > 0 → 驱动/硬件检查

3. **调优操作风险等级**  
⚠️ 低风险:进程优先级、文件句柄数  
⚠️⚠️ 中风险:I/O调度器、内核参数  
⚠️⚠️⚠️ 高风险:文件系统remount、中断绑定

​终极建议​​:所有生产环境调优必须遵循 ​​"修改-监控-验证"​​ 流程,并通过/proc/sys目录实现动态调整,避免直接修改配置文件导致系统不可用。


​下载完整调优速查表​​:[linux_perf_cheatsheet.pdf]

​监控脚本合集​​:git clone https://github.com/linux-perf-tools

​调优工具全家桶安装​​:

# RHEL/CentOS
yum install sysstat iotop nethogs nload httpd-tools -y

# Ubuntu/Debian
apt install sysstat iotop nethogs nload apache2-utils -y
Logo

纵情码海钱塘涌,杭州开发者创新动! 属于杭州的开发者社区!致力于为杭州地区的开发者提供学习、合作和成长的机会;同时也为企业交流招聘提供舞台!

更多推荐