警告
本文最后更新于 2022-07-05,文中内容可能已过时。
1. 进程与线程
进程
: 一个程序的执行实例,也就是正在执行的程序
线程
: 在一个程序里的一个执行路线就叫做线程
2. ps 命令
-f
: 显示UID
、PID
、PPID
、C
(使用cpu资源百分比)、STIME
(进程运行的开始时间)、TTY
、TIME
(进程使用的cpu总时长)、CMD
栏位。
ps aux|head -n 2
%CPU
: cpu使用率
%MEM
: 内存使用率
VSZ
: 表示进程分配的虚拟内存(kb)
RSS
: 表示进程分配了多少内存(RAM中的物理内存),RSS
不包含已经被换出的内存。RSS
包含了它所链接的动态库并且被加载到物理内存中的内存。RSS还包含栈内存和堆内存。 (kb)
STAT
: 表示当前进程状态
S
: 进程休眠中,可被唤醒;
s
: 当前进程含有子进程 ;
R
: 当前进程运行中;
D
: 不可中断的进程;
T
:进程暂停状态;
Z
:僵尸进程;
<
高优先级进程 ;
N
:低优先级进程
START
: 进程开始时间
TIME:
进程执行时间
3. top 命令
z
: 打开或关闭颜色
k
: 终止一个进程
i
: 忽略闲置和僵死进程
r
: 重新安排一个进程的优先级别
s
: 改变两次刷新之间的延迟时间(单位为s)
t
: 切换显示进程和CPU状态信息
c
: 切换显示命令名称和完整命令行
M
: 根据驻留内存大小进行排序
P
: 根据CPU使用百分比大小进行排序
x
: 高亮某一列
4. 进程检查
4.1. pgrep 显示相关进程ID
4.2. kill 特殊信号 0
表示不发送任何信号给PID
,但会对这个id进行检查,如果执行结果为0,表示次进程存在,如果结果为1,则表示进程不存在
4.3. 特殊进程
5. top列说明
序号 |
列名 |
含义 |
a |
PID |
进程id |
b |
PPID |
父进程id |
c |
RUSER |
Real user name |
d |
UID |
进程所有者的用户id |
e |
USER |
进程所有者的用户名 |
f |
GROUP |
进程所有者的组名 |
g |
TTY |
启动进程的终端名。不是从终端启动的进程则显示为 ? |
h |
PR |
优先级 |
i |
NI |
nice值。负值表示高优先级,正值表示低优先级 |
j |
P |
最后使用的CPU,仅在多CPU环境下有意义 |
k |
%CPU |
上次更新到现在的CPU时间占用百分比 |
l |
TIME |
进程使用的CPU时间总计,单位秒 |
m |
TIME |
+ 进程使用的CPU时间总计,单位1/100秒 |
n |
%MEM |
进程使用的物理内存百分比 |
o |
VIRT |
进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
p |
SWAP |
进程使用的虚拟内存中,被换出的大小,单位kb。 |
q |
RES |
进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
r |
CODE |
可执行代码占用的物理内存大小,单位kb |
s |
DATA |
可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
t |
SHR |
共享内存大小,单位kb |
u |
nFLT |
页面错误次数 |
v |
nDRT |
最后一次写入到现在,被修改过的页面数。 |
w |
S |
进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) |
x |
COMMAND |
命令名/命令行 |
y |
WCHAN |
若该进程在睡眠,则显示睡眠中的系统函数名 |
z |
Flags |
任务标志,参考 sched.h |
top 展示列表说明
- |
当前时间 |
总共运行时间 |
当前系统登陆用户 |
系统平均负载(正常水平不超过: 核心数x每个核心的线程x0.8) |
1分钟 |
5分钟 |
15分钟 |
top |
14:33:32 |
up 1:38 |
1 user |
load average |
1.84 |
1.81 |
1.48 |
- |
当前运行的进程 |
总共进程 |
正在运行的进程 |
休眠进程 |
停止进程 |
僵死进程 |
Tasks |
- |
390 total |
1 running |
388 sleeping |
0 stopped |
1 zombie |
- |
cpu使用占用百分比 |
用户态 |
内核态 |
用户进程空间内改变过优先级的进程 |
空闲进程 |
等待输入输出 |
硬中断 |
软中断 |
虚拟机 |
%Cpu(s) |
- |
5.0 us |
1.5 sy |
0.0 ni |
93.0 id |
0.0 wa |
0.4 hi |
0.1 si |
0.0 st |
- |
物理内存总大小 |
空间的内存总量 |
使用中的内存总量 |
缓存的内存总量 |
MiB Mem |
23324.9 total |
13501.5 free |
4962.2 used |
4861.1 buff/cache |
MiB Swap |
交换区总量 |
空闲交换区总量 |
使用的交换区总量 |
可用内存总量 |
- |
4096.0 total |
4096.0 free |
0.0 used |
17387.7 avail Mem |
PID |
USER |
PR |
NI |
VIRT |
RES |
SHR |
S |
%CPU |
%MEM |
TIME+ |
COMMAND |
- |
- |
进程优先级 |
nice值,数字越大优先级越低,反之越高 |
进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
任务使用的非交换物理内存 |
任务使用的共享内存量。它只是反映了可能与其他进程共享的内存 |
任务的状态,可以是(D :不间断睡眠;R :运行;S :睡眠;T :暂停;Z :僵尸) |
总CPU时间的百分比 |
任务当前使用的可用物理内存共享 |
任务自启动以来使用的总CPU时间 |
- |