查看CPU和内存使用情况(Linux系统)
Linux 中查看内存及CPU资源使用情况对排查线上故障非常重要
我们可以使用系统自带的 top 命令,top 命令类似于Windows系统中的任务管理器,可以列出当前系统中的进程及资源的使用情况
用法说明
直接输入top,回车即可,如下图
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 或缓存的部分
进程占用资源信息列表
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 系统没有业务程序运行,通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高
处理办法:
load average 是对 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。出现此种情况时,可能是由于僵死进程导致的。可以通过指令 ps -axjf 查看是否存在 D 状态进程。D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill,也无法自行退出。只能通过恢复其依赖的资源或者重启系统来解决
上一篇: Linux查看CPU和内存的使用情况
推荐阅读
-
Linux系统下的CPU、内存、IO、网络的压力测试
-
Linux MyEclipse启动Tomcat太慢内存和cpu被大量占用
-
Linux系统中的内存清理和释放命令归纳小记
-
linux下通过go语言获得系统进程cpu使用情况的方法
-
使用python获取CPU和内存信息的思路与实现(linux系统)
-
linux系统查看系统内存和硬盘大小
-
shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)
-
linux free命令详解和使用实例(查看内存使用率)
-
linux修改系统时间和linux查看时区、修改时区的方法
-
linux 查看系统配置命令(linux查看运行内存使用情况)