前言
在之前,我们学习了使用ps查看进程,也分享了有关优先级的相关概念与案例,但是似乎在这个过程中还是存在一些问题。
我们平常在windows上,可以使用“任务管理器”中的“进程“选项卡去进行进程的查看,并且它在实时的进行更新当前的状态,但在Linux中的ps命令,好像只能查看到在执行命令这一时间的进程状态。
所以,我们今天,会为大家带来动态监测进程的一个工具和命令,让我们继续进程的学习吧!
Linux提供了一个程序—“System-Monitor”,可以帮助我们去动态地监测进程,它类似于windows的“任务管理器”。
其基本的操作方法,与任务管理器很类似,比如点击上方的选项卡可以根据这一列内容进行排序,像是点击搜索按钮,可以根据关键字进行检索进程。选择指定进程后,可以右键打开选项卡,对进程进行更多的操作,比如:打开内存表、查询打开的文件、调整优先级等等。
并且,它还可以去实时监控硬件的使用情况及文件系统的使用情况。
一个图形化软件,在这里就不再进行更多的扩展了,大家可以自行使用、探索他的功能,接下来,我们把重心放在命令上来吧。
图形化软件也就我们在自己电脑上的虚拟机上玩一玩,一旦进入企业,我们基本上是不可能看见图形化的Linux的,那么在丢弃掉了图形化之后,我们又应该用什么来进行进程的动态监控呢?
这也就是我们今天所分享的重点——‘top‘命令学习。
top基础学习
top 命令的基本执行非常简单,直接执行即可。
[root@YUTIAN ~]# top
在执行时,也会有一个常用的选项,在下列出:
-o:指定以哪一列进行排序,默认以CPU使用情况进行排序
[root@YUTIAN ~]# top -o PID # 指定以PID排序
-d:指定刷新间隔,单位为秒,默认每3秒刷新一次
[root@YUTIAN ~]# top -d 1 # 指定刷新间隔为1S刷新一次
-p:指定PID,可以监控指定某一个进程或多个进程
[root@YUTIAN ~]# top -p 1,2 # 只监控 PID为1,2的两个进程
top运行结果
top的运行结果非常之多,所以我们在这里对其做一个比较详细的解释。
top - 10:36:52 # 当前的系统时间
up 46 min, # 系统开机时长
1 user, # 当前有几个用户在登录
load average: 0.00, 0.00, 0.00
#系统的平均负载:每分钟,每五分钟,每十五分钟
系统是否卡顿,就需要关注这个值
以单颗CPU为例,此值的正常值为1
小于1 系统资源很充足
等于1 系统正在全力处理任务,但是并不会卡顿
大于1 CPU已经在全力工作,但是队列依旧很长,任务量还有很多,开始卡顿
我们需要关注的是每十五分钟的这个值,如果这个值一直都比较大,那么这个系统就需要做一定的性能优化了
Tasks: 315 total, 1 running, 314 sleeping, 0 stopped, 0 zombie
#任务行:当前任务总量,正在运行的任务,睡眠状态的任务,停止状态的任务,僵尸进程的数量。
%Cpu(s): 0.0 us, 1.6 sy, 0.0 ni, 98.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
#CPU使用情况:程序占用,内核占用,调整过优先级的,空闲CPU,IO等待,硬中断,软中断,cpu等待时间
MiB Mem : 7742.0 total, 5901.2 free, 1058.3 used, 782.5 buff/cache
#内存使用情况:内存总量,空闲内存,已使用内存,缓存数量
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 6419.6 avail Mem
#swap使用情况:swap总量,目前未被使用的交换空间大小,已使用swap,可用内存信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 186816 14632 9584 S 0.0 0.2 0:07.45 systemd
PID 进程ID号
USER 进程UID
PR 进程实时优先级
NI 进程非实时优先级
virt 虚拟内存总量,表示进程请求的全部虚拟内存大小
res 未被置换出的物理内存大小,表示进程当前占用的物理内存大小,即进程占用的实际内存大小
shr 共享内存大小
s 进程状态
%CPU cpu占用情况
%MEM 内存占用情况
TIME+ 占用CPU时间,运行时间{只要进入了sleep状态,就会重新计数}
COMMAND 进程执行的命令
top操作
在详细了解如何运行top,以及运行结果的详细讲解之后,我们再来聊一聊,在top内去进行更高级的一些操作。
基本操作:
高级操作:
# 键入 ‘1‘ 查看单个CPU的使用情况
# c 切换显示命令名称和完整命令行
# M 可按内存占用情况进行排序
# P 根据CPU使用百分比大小进行排序
# T 根据时间/累计时间进行排序
# F 键可以选择显示的内容
表示需要显示的内容,可以使用d或者space进行选择
移动光标到指定项,键入 s 选择后表示以该项进行排序
键入 q 或 ESC 表示保存配置退回到top
# k 键可以选择PID结束进程
默认为当页第一个进程,也可以输入PID后回车
回车后输入信号发送给进程默认为15,再次回车结束进程
top命令是一个用于监控系统运行状态的命令行工具。它显示了当前运行在系统中的进程列表以及系统资源的使用情况,如CPU利用率、内存使用、交换空间等。它极大程度的提升了我们对系统运行情况的了解,可以非常方便的帮助我们进行进程的实时监控,详细了解某个进程的使用情况。