服务器使用率高处理思路

通过 top 可以快速判断:

· 内存问题:看 free 内存和 swap used

· CPU 问题:看 id 空闲率和 us/sy 使用率

· 磁盘 I/O 问题:看 wa 等待率和 D 状态进程

经验法则:

· wa > 10% = 磁盘 I/O 瓶颈

· id < 20% = CPU 资源紧张

· swap used > 0 = 内存压力

· load average > CPU核心数 = 系统过载

一、服务器负载高

系统负载(load average)反映的是等待CPU资源的进程数量,而不仅仅是CPU的使用率。高负载可能由CPU、内存或I/O瓶颈引起。

定义:单位时间内,处于运行状态或不可中断睡眠状态(如等待磁盘 I/O)的进程数量的平均值。

查看指令:uptime && top

输出:load average: 0.65, 0.72, 0.80

最近1分钟、5分钟、10分钟的平均负载

判断标准:负载值<CPU核心数------>正常

负载值>CPU核心数------>系统可能过载

查看CPU核心数:nproc 或者 lscpu | grep "CPU(s)"

举例:

$ uptime

14:30:10 up 10 days, 1:20, 1 user, load average: 6.20, 5.90, 5.75

$ nproc

4

服务器是 4 核 CPU,而1分钟负载已经是 6.20,说明系统过载。

二、CPU使用率过高判断

查看指令 top && nproc &&lscpu

重点关注:

● %Cpu(s) 行:查看 us(用户态 CPU 占用)、sy(系统态 CPU 占用)

● us + sy 如果 > 80%,说明 CPU 是瓶颈

%Cpu(s): 85.3 us, 10.2 sy, 0.0 ni, 3.1 id, 0.5 wa, 0.0 hi, 0.9 si, 0.0 st

us+sy=85.3+10.2=95.5>80,说明cpu使用率过大。

三、I/O过高导致(wa高)

查看指令:top && iostat

观察 top 中的 %Cpu(s) 行中的 wa(iowait):

■ 问题:wa>10%:有一定I/O等待,需要关注

■ 严重:wa> 20%:说明系统有大量 I/O 等待

■ 可能是磁盘读写、数据库操作、文件拷贝等导致

%C pu(s): 5.3 us, 2.1 sy, 0.0 ni, 70.2 id, 22.3 wa, 0.0 hi, 0.1 si, 0.0 st在 top 在top中查找 D 状态进程:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

7890 backup 20 0 1.2g 800m 100m D 0.0 5.0 1:23:45 /bin/tar -czf backup.tar.gz

7891 mysql 20 0 8.5g 3.2g 1.2g D 15.2 20.0 0:45:23 /usr/sbin/mysqld

D 状态 = 不可中断睡眠 = 进程正在等待磁盘I/O

wa是CPU等待I/O操作完成的时间百分比。wa为22.3,I/O等待严重。进程中状态S有D状态,说明进程在等待。

补充说明:

wa过高可以分为两类:

①内存不足导致的wa高

判断:内存不足------>频繁SWAP------>磁盘I/O增加------>wa升高

②纯磁盘I/O瓶颈

判断:内存充足,但wa高------>真正的磁盘性能瓶颈。

2、使用 iostat 查看具体磁盘 I/O 情况(需安装 sysstat)

iostat -x 1 3

重点关注:

● %util:磁盘使用率,接近 100% 表示磁盘繁忙

● await:I/O 请求平均等待时间,数值大说明磁盘慢

四、内存不足

查看指令: free -g && top

重点关注:

● available 是否低于总内存 10%

● Swap 是否在持续增长(使用 vmstat 1)

五、使用 vmstat 查看内存和 I/O 综合情况

查看指令:vmstat 1 5

重点关注:

● si(swap in)和 so(swap out)是否大于 0

● wa 是否大(I/O 等待)

● us + sy 是否大(CPU 占用)

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

2 0 0 98760 56789 5678900 0 0 100 50 100 200 5 2 92 1 0

● 如果 si/so > 0,说明 Swap 被使用,内存不足

●

相关推荐
张宇Joaquin1 小时前
AMD uProf 工具采集微架构特征使用介绍
服务器
老李IT笔记1 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
刚入门的大一新生2 小时前
Linux-进程池
linux·运维·服务器
鱼很腾apoc3 小时前
【MySQL】第4期 用户管理与 C 语言连接编程详解
linux·服务器·c语言·mysql·connector/c
刚入门的大一新生3 小时前
Linux-进程间通信1
linux·运维·服务器
西索斯coding4 小时前
Grok 4.7 调用一直 401 怎么办?不是 Key 过期,是 Authorization 头格式问题——排查全流程 + 修复示例
服务器·开发语言·ai·php
const_qiu4 小时前
第四章 07:4.7 本章小结
java·运维·服务器·人工智能
mengge.cloud5 小时前
1019Namespace ,Contexts ,Kubernetes Pod
运维·服务器·网络·云原生·容器·kubernetes·云计算
aixingkong9215 小时前
UALink 技术白皮书解读
服务器·网络·硬件架构
mklpo1475 小时前
在 安卓手机 上通过termux运行 gentoo 和 宝塔面板。2026.10.19
linux·运维·服务器