警告
本文最后更新于 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时间 |
- |