欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

查看CPU和内存使用情况(Linux系统)

程序员文章站 2022-07-11 10:34:39
...

Linux 中查看内存及CPU资源使用情况对排查线上故障非常重要
我们可以使用系统自带的 top 命令,top 命令类似于Windows系统中的任务管理器,可以列出当前系统中的进程及资源的使用情况
用法说明
直接输入top,回车即可,如下图
查看CPU和内存使用情况(Linux系统)
top命令执行之后会不停的动态刷新资源占用信息,按小写q键可退出top命令
top命令输出的各部分内容的含义
top行(机器运行的info)

top - 23:30:13 up  8:45,  1 user,  load average: 150.23, 82.34, 66.87

从左至右依次为:
23:30:13 系统当前时间
up 8:45 系统已运行时间
1 user 当前登录的用户数
load average: 150.23, 82.34, 66.87 平均负载,三个值,分别表示过去 1 分钟,5 分钟和 15 分钟的平均负载
tasks行(进程info)

Tasks:  84 total,   2 running,  82 sleeping,   0 stopped,   0 zombie

从左至右依次为:
84 total 总计 84 个进程
2 running 其中 2 个正在运行
82 sleeping 82 个处于休眠
0 stopped 0 个停止
0 zombie 0 个僵死进程
CPU行(CPU info)

%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

从左至右依次为:
0.0 us :(user) 用户消耗的 CPU 百分比
0.0 sy :(system) 系统消耗的 CPU
0.0 ni : nice 进程消耗的 CPU
100.0 id :(idle) 空闲的 CPU
0.0 wa :(waiting) 等待处理 I/O 操作的 CPU 资源
0.0 hi :(Hardware IRQ)处理硬件交互的 CPU 资源
0.0 si :(Software Interrupts)处理软件交互的 CPU 资源
0.0 st :(Steal Time)如果当前处于虚拟系统(vm)中,此项表示由管理程序从此系统偷走拿去处理其他任务的 CPU 资源
Mem & Swap行

KiB Mem :  3880228 total,   113276 free,  3602128 used,   164824 buff/cache
KiB Swap:        0 total,        0 free,        0 used.    29188 avail Mem

这两行表示物理内存(RAM)及 swap 空间的使用情况
3880228 total 总内存
113276 free 空闲的部分
3602128 used 使用的部分
164824 buff/cache buff 或缓存的部分
进程占用资源信息列表
查看CPU和内存使用情况(Linux系统)
PID: 进程的 id,通过它来操作指定进程
USER: 进程的所有者
PR: 进程的优先级
NI: 进程的 NICE 值,默认 0
VIRT: 进程使用的虚拟内存
RES: 进程使用的物理内存
SHR: 进程使用的共享内存
S: status,进程的状态: S=sleep R=running Z=zombie (S)
%CPU: 进程消耗的 CPU 百分比
%MEM: 进程使用的 RAM 百分比
TIME+: 进程运行时长
COMMAND: 进程名

排查问题时top命令实操
执行top命令后,可以直接在界面输入大写字母 P,来使监控结果按 CPU 使用率倒序排列,进而定位系统中占用 CPU 较高的进程。最后,根据系统日志和程序自身相关日志,对相应进程做进一步排查分析,以判断其占用过高 CPU 的原因
在界面输入大写字母 M,可使监控结果按 Mem 使用率倒序排列
使用 top 直接终止 CPU 消耗较大的进程
如前面所述,可以通过 top 命令查看系统的负载问题,并定位耗用较多 CPU 资源的进程。可以直接在 top 运行界面快速终止相应的异常进程。说明如下:
1.想要终止某个进程,只需按下小写的 k 键
2.输入想要终止的进程 PID (top 输出结果的第一列)
查看CPU和内存使用情况(Linux系统)
CPU 使用率较低但负载较高
问题描述:
Linux 系统没有业务程序运行,通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高
查看CPU和内存使用情况(Linux系统)
处理办法:
load average 是对 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。出现此种情况时,可能是由于僵死进程导致的。可以通过指令 ps -axjf 查看是否存在 D 状态进程。D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill,也无法自行退出。只能通过恢复其依赖的资源或者重启系统来解决
查看CPU和内存使用情况(Linux系统)

相关标签: Linux linux cpu