2.18Linux 进程管理

一、生命周期

ps -aux  pstree

PID为1,系统进程

5/6版本:init 7版本:systemd

父进程复制自己的地址空间(fork)创建一个新的(子)进程结构

每个新进程分配一个唯一的进程 ID (PID),满足跟踪安全性需求

PID 和 父进程 ID (PPID)是子进程环境的元素,任何进程都可以创建子进程

二、进程属性

1、进程ID(PID):唯一数值 父进程ID(PPID)

2、启动进程的用户ID(UID),所属组(GID)

3、进程的状态

STAT:程序运行状态 状态字母后的字符

R:正在运行 <:高优先级

S:正在休眠 N:低优先级

T:正在侦测或停止 L :进程有页面锁定内存(不能交换到物理内存)

Z:僵尸进程 s :控制进程(进程之间是格力的)

D:不可中断 l :多线程(同一个程序下开启不同线程,共享资源)

+ :进程运行在前台

zombie僵尸进程:不执行代码,占用内存地址空间(出现是正常情况)

1)kill命令无法杀死僵尸父进程

2)杀死僵尸进程的父进程,僵尸进程会随之消失

3)如果僵尸进程的父进程是systemd或init,那么需要重启系统

4、进程的优先级nice

进程的优先级管理

优先级取值范围为(-20,19),越小优先级越高, 默认优先级是 0

nice -n 指定程序的运行优先级 

格式:nice -n 数值 程序

renice 改变程序的运行优先级

格式:renice 数值 PID

top -p PID 查看进程优先级

5、进程所连接的终端名(持续命令脱离终端)

6、进程资源占用:比如占用资源大小(内存、CPU、占用量)

三、进程处理

1、上下文切换

1)处理一段时间,到一定时间中断,保存状态,先进行下一个进程

2)运行队列、过期队列

3)一般不能有太多上下文切换,会导致性能下降

2、中断处理

1)硬中断:是由硬件产生的,需要快速响应(比如:磁盘 IO 中断、键盘中断、鼠标中断等)

2)软中断:被用来处理可以推迟的任务(TCP/IP、SCSI 协议操作等)

3、进程切换

前台进程:在终端中运行的命令,该终端为进程的控制终端,若终端关闭,这个进程也随着消失

后台进程:守护进程

1)& 将进程放在后台运行,不能脱离终端

如:ping 192.168.30.100 &

nohup 命令 & 放入后台切换终端

如:nohup ping 192.168.30.100 &

2)ctrl+z 将一个正在前台执行的命令放到后台,并且暂停

3)jobs 查看当前有多少在后台运行的进程

3)fg 将后台中的命令调至前台继续运行

4)bg将一个在后台暂停的命令,变成继续执行

screen命令后台运行,脱离终端——需要安装

screen -ls 列出当前所有会话

screen -S  test 新建一个text的会话

screen -r test1 回到text会话

保存路径:/var/run/screen/S-root

4、kill 关闭进程

kill 关闭进程:kill 进程号 关闭单个进程

killall 和 pkill 命令用于杀死指定名字的进程

-l列出全部编号

信号编号信号名

1) SIGHUP 重新加载配置

2) SIGINT 键盘中断 crtl+c

3) SIGQUIT 退出

9) SIGKILL 强制终止

15)SIGTERM 终止(正常结束),缺省信号

18) SIGCONT 继续

19) SIGSTOP 停止

20) SIGTSTP 暂停 crtl+z

killall 命令

kill [子选项][信号] 进程名

选项:-i:交互式,询问是否要杀死某个进程

交互式杀死 sshd 进程:

pkill 命令

pkill 命令和 killall 命令非常相似,也是按照进程名来杀死进程

pkill [选项][信号] 进程名

-t 终端号:按照终端号踢出用户

四、查看进程

1、ps aux查看的信息:

%CPD 占用CPU的百分比

%MEM 占用内存的百分比

VSZ虚拟内存空间:共享文件

RSS真实使用空间:判断进程使用的内存空间

STAT:程序运行状态

Ctrl+c 终止

Ctrl+z 挂起、暂停

Ctrl+d 输入完成

2、ps常用参数:ps -ef 显示所有进程,完全格式输出

UID: 启动这些进程的用户

PID: 进程的 ID

PPID: 父进程的进程号

C: 进程生命周期中的 CPU 利用率

STIME: 进程启动时的系统时间

TTY: 表明进程在哪个终端设备上运行。如果显示?表示与终端无关,这种进程一般是内核态进程。另外,

tty1-tty6 是本机上面的登入者程序,若为 pts/0 等,则表示运行在虚拟终端上的进程。

TIME: 运行进程一共累计占用的 CPU 时间

CMD: 启动的程序名称

3、free

total 系统中有多少的物理内存

used 已经使用的内存数量

free 空闲的内存数量

shared 是多进程共享的内存数量

buff/cache 缓冲和缓存(缓冲:读,缓存:写)内存快耗尽时会释放给内存使用,不能全部释放

available:查看使用空间,评估有多少内存可用于新应用程序(通常 free+buff/cache 的数值要比 available 的数值大)

4、uptime 查看CPU负载工具

时间 运行时间 登录用户数 系统负载(1分钟 5分钟 15分钟)CPU为1 平均值>3 负载过高

5、top命令

第一行内容与uptime一致

Tasks: 481 total 进程总数

1 running    正在运行的进程数

480 sleeping 睡眠的进程数

0 stopped   停止的进程数

0 zombie    僵尸进程数

Cpu(s): 0.0% us 系统用户进程使用 CPU 百分比

0.0% sy      内核中的进程占用 CPU 百分比

98.7% id     空闲 CPU 百分比

0.0% wa cpu 等待 I/0 完成的时间总量

hi           硬中断

si           软中断

st           虚拟机偷取物理的时间

%CPU 上次更新到现在的 CPU 时间占用百分比

%MEM 进程使用的物理内存百分比

VIRT  虚拟内存,是进程正在使用的所有内存

RES   进程所使用的物理内存

SHR  共享内存大小,单位 kb

top 快捷键:

默认 3s 刷新一次,按s修改刷新时间

按空格 :立即刷新。

q:退出

P:按CPU排序

M:按内存排序

T:按时间排序

p: 进程 IP,查看某个进程状态

数字键 1:显示每个内核的CPU 使用率

u/U:指定显示的用户

h:帮助

6、lsof命令

-p pid 查看进程在读哪些文件

-i 端口 查看端口被哪些进程使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值