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时间 | - |