从零开始学shell之top命令
前言
top命令,就像是windows的任务管理器。为我们在
交互命令
交互命令是在top命令启动后的一些方便查看的指令。
参数 | 说明 |
---|---|
c | 显示整个命令行而不是命令名 |
M | 以内存占有率大小的顺序排列进程列表 |
P | 以cpu占有率大小的顺序排列进程列表 |
u | 输入用户名,只会显示输入用户的进程 |
n | 输入数字,最多只显示输入数字的进程 |
v | 以树形结构展示进程 |
N | 以pid大小排序 |
R | 逆序当前的排列规则 |
H | 线程模式 |
f | 进入编辑模式,可以选择想要展示的列和排序的列。上下在各列之间移动,右选择,enter确认。d确认展示数据,再次点击取消。s选择排序的列。 |
启动命令
启动命令是在top命令启动时候的输入的命令。
参数 | 说明 |
---|---|
-p pid | 只显示特定pid进程的数据 |
内存各列的含义
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
DATA
1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。
进程状态的含义
Runnable (R)
进程在CPU执行状态中或者在运行队列中,马上要被执行
Interruptible sleep (S)
进程在等待某个事件完成
Uninterruptible sleep (D)
进程在等待I/O操作完成
Stopped (T)
进程被job control signal信号停止或者处于debug模式中stop状态中。
Zombie (Z)
已经停止的进程,但是他的数据还被其他进程引用着,这样的进程就叫做僵尸进程。
进程状态总结
进程在D(Uninterruptible sleep)和 S(Interruptible sleep)状态显示的是sleeping状态。T(Stopped)状态现实的是stopped。在最上面zombie标示旁边显示总的zombie进程数量。
NI和PR
NI表示nice value是用户空间的概念。PR是Priority是进程在LInux内核中实际优先级。
总结
top命令可以说是Linux操作系统的任务管理器了。一旦遇到问题首先就是通过top命令查看系统的状态,出了基础的top命令外,还有很多专有top(iotop,iftop等)。