24.Linuxあ进程管理
一.进程介绍
1.进程
- 程序: 存放代码的文件(静态概念)
- 进程: 程序运行的过程(动态概念)
- 同一个程序可能对应多个进程
- 父进程: 程序运行时产生的第一个进程
- 子进程: 由父进程衍生出来的进程(比如在bash里再开一个bash)
- 如果父进程终止,子进程也会随之终止
- 进程是操作系统最核心的概念
2.并行与并发
- 并发: 多个任务看起来是同时运行的
- 并行: 多个任务真正的同时运行(只有多核再能实现并行)
3.线程
- 线程是进程内代码执行的过程
- 线程才是CPU上的执行单位
- 一个进程至少有一个线程
- 强调:CPU只做代码的运行,而不涉及I/O操作
4.任务三种状态
- 运行态
- 就绪态
- 阻塞态
- 不是阻塞态就是非阻塞态
5.提交任务的两种方式
- 同步
- 异步
- 例子
二.进程信息的查看
1.ps aux 组合命令,查看进程信息
| -a | 显示一个终端的所有进程 |
|---|---|
| -u | 选择有效的用户ID或者是用户名 |
| -x | 显示没有控制终端的进程,同时显示各个命令的具体路径 |
2.命令显示结果
3.首行信息代表含义
| USER | 运行进程的用户 |
|---|---|
| PID | 进程运行的ID号 |
| %CPU | 进程占用CPU百分比 |
| %MEM | 进程占用内存百分比 |
| VSZ | 进程占用虚拟内存的大小(单位: KB) |
| RSS | 进程占用物理内存的实际大小(单位: KB) |
| TTY | 进程运行的终端(tty1, pts/0虚拟终端等) |
| STAT | 进程运行过程中的状态(R S D T Z X < N s + l |) "man"查询 |
| START | 进程启动时间 |
| TIME | 进程占用CPU的总时间("0"表示还没有超过"1"秒) |
| COMMAND | 程序运行指令,有[ ]代表内核态进程,没有[ ]代表用户态进程 |
-
VSZ : 是指已分配的线性空间大小, 这个大小通常并不等于程序实际用到的内存大小,(内存映射, 共享的动态库, 或向系统申请了更多的堆都会扩大线性空间)
-
RSS : 常驻内存大小, 即进程实际占用的物理内存大小
-
STAT进程状态
| R | 进程运行 |
|---|---|
| S | 可中断睡眠(sleep),执行I/O操作可得到硬件设备响应 |
| D | 不可中断睡眠, 执行I/O操作得不到硬件设备的响应 |
| T | 停止的进程 |
| Z | 僵尸进程 |
| s | 大S后面的小s,代表包含子进程 |
| < | 优先级较高的进程 |
| N | 优先级较低的进程 |
| + | 前台运行的进程 |
| |(管道符号) | 代表多进程 |
| X | 死掉的进程(几乎看不见,死掉后就被回收了) |
| l(小写l) | 以多线程的方式运行 |
- D状态与Z状态的进程都无法使用 kill -9 杀死
4.ps -elf 查看命令
- 选项
| -e | 显示所有进程 |
|---|---|
| -f | 全格式 |
| -l | 长格式 |
- 三种查看效果对比(PPID代表当前进程的父进程)
5.查看进程不同状态
- S+状态与T状态切换
- 查看 S+ R+ D+ 状态
6.查看进程树
7.动态查看用法top
-
常用选项
| -d | 指定刷新时间(秒) |
|---|---|
| -p | 指定某个进程(PID) |
| -u | 查看指定用户的进程 |
-
选项示例
⛅查看指定进程ID的进程信息
top -d 1 -p 11019 1秒刷新一次
⛅查看指定用户开启的所有进程信息
top -d 1 -u song1 1秒刷新一次
-
动态信息含义
⛅首行(可按小写L选择开启或关闭)
| top | 当前时间 |
|---|---|
| up | 系统已运行时间 |
| users | 登入的用户数量 |
| load average | 平均负载(1分钟,5分钟,15分钟) |
⛅第二行
| Tasks: 111 total | 表示有111个进程 |
|---|---|
| running | 正在运行的进程数 |
| sleeping | 正在睡眠的进程数 |
| stopped | 停止的进程数 |
| zombie | 僵尸进程数 |
⛅第三行
| %CPU(s):(按"1"可以展开) | 表示各种占用CPU的百分比 |
|---|---|
| us | 用户态占用CPU百分比 |
| sy | 内核态占用CPU百分比 |
| ni | nice值 |
| id | 空闲CPU百分比 |
| wa | cpu等待I/O完成时间 |
| hi | 硬件中断占CPU百分比 |
| si | 软件中断占CPU百分比 |
| st | 被虚拟化偷走的CPU时间 |
⛅第四行
| KIB Mem : | 物理内存 |
|---|---|
| total | 物理内存总空间 |
| free | 空闲空间 |
| used | 已用空间 |
| buff / cache | 缓冲 / 缓存占用空间 |
⛅第五行
| KIB Swap : | 交换分区大小 |
|---|---|
| total | 交换分区总空间 |
| free | 空闲空间 |
| used | 已用空间 |
| avail Mem | 可用内存 |
⛅信息字段含义补充
| PR | 优先级(比 NI 大 20) |
|---|---|
| NI | nice值,也表示优先级 |
| VIRT | 虚拟内存(线性空间) |
| RES | 进程当前使用的内存大小 |
| SHR | 共享内存 |
-
进程信号
⛅kill -l 列出当前系统支持的信号
⛅常用信号
| 编号 | 含义 | 作用 |
|---|---|---|
| 1 | SIGHUP | 不用重启进程直接重新加载配置文件 |
| 9 | SIGKILL | 强制杀死进程(D,Z杀不死) |
| 15 | SIGTERM | 终止进程, kill默认就是这个信号 |
| 18 | SIGCONT | 让被停止的进程恢复运行 |
| 19 | SIGSTOP | 暂停进程 |
⛅信号使用示例(使用信号18,19)
⛅信号使用示例2(使用信号1)
⛅根据进程名杀死所有进程
⛅查看某个用户开启的进程
-
TOP常用内部命令
| s(默认3秒) | 修改刷新时间,建议不要设置很小,会消耗CPU资源 |
|---|---|
| q | 退出,或者是 Ctrl + c |
| M | 按照内存占用率大小从大到小排序 |
| P | 按照CPU占用率从大到小排序 |
| N | 按照PID从大到小排序 |
| (R) | 以上配合R可进行倒序 |
| (shift + > <) | 以上配合左右可进行左右字段选择 |
| f | 增加显示的字段,空格键选择 |
| k | 发送信号 |
| 数字 "1" | 展开显示所有的CPU信息 |
| z | 变颜色 |
| "⬆"," ⬇" | 向上向下进行翻页查看 |
| r | 调整进程优先级 |
本文来自博客园,作者:ଲ小何才露煎煎饺,转载请注明原文链接:https://www.cnblogs.com/zeny/articles/14443898.html












浙公网安备 33010602011771号