进程管理相当于任务管理器:
程序是一串没有运行的代码
进程是运行起来的代码
线程:线程相当于复制了进程的部分代码,程序运行起来之后,真正执行的是线程。
linux系统当中启动程序的过程
父进程先启动--------子进程
子进程的资源由父进程来进行分配。
结束的过程:
子进程先结束------父进程收回子进程资源------------父进程才会终止。
特殊情况:
父进程结束了,子进程还在?僵尸进程。
查看进程信息 静态查看,动态查看
ps-------静态差看信息
ps -aux
a:显示终端上的所有进程,包括其他用户的进程。
u:列出进程的执行用户。
x:显示当前终端进程的详细信息。
user:进程的用户
pid:进程号,每个进程系统中运行时的唯一标志。每个pid都不重复的。
%cpu:进程占用的cpu百分比
%MeM":进程占用物理内容的百分比
ysz:进程的虚拟内存大小(kb)
RSS:占用物内存的量
tty,表示终端?表示进程不是由终端记录的
stat satus状态 ;
1.处于休眠状态,但是随时可唤醒
2.D不能唤醒的休眠状态
3.R:运行
4.T:停止运行,后台进程暂停或者进程出于跟踪调试状态。
5.z:僵尸进程,父进程结束了,但子进程还在。
Start :进程启动的时间
time:进程实际使用cpu运行时间
command:进程启动的命令
补充说明:
状态吗的字符意义:
s:进程包含子进程
<该进程优先级高
N:低优先级
t:该进程有多少个线程
L进程有个部分被缩进内存。
ps -aux 主要用来进程占用系统资源的情况
第二种
ps -elf 也是静态查看进程信息的方法
e:显示系统内的所有进程
l:显示进程的详细信息
f:完整的格式展示进程的进行
F.内核分配给进程的系统 标识
s. 进程的状态
UID该进程的用户
pid:该进程的进程号
ppid:该进程的父进程,谁启动的这个进程
c 进程在生命周期当中的cpu利用
PRI:优先级 数字鳄到大,优先级越低
NL:谦让值
ADDR:进程在内存当中的地址
sz:假如该进程被换出,需要的交换空间大小。
睡觉 占了一张床
用来了一盒 交换分区(旁边的另一张床)
WCHAN:如果进程出于休眠状态,显示睡眠中的系统函数名
STIME:进程启动的时候
time:进程实际使用cpu允许的时间
cmd:进程启动的详细命令。
进程管理:
结束进程的命令:kill -9强制结束该进程
面试题:kill进程是谁来结束进程?
kill只是传递了一个信号-9表示强制和立即。系统将进程结束。
特殊的进程,僵尸进程
面试题:如果有僵尸进程你应该怎么办?
少量的僵尸进程影响不大,因为僵尸进程所占的系统资源很少,可以忽略不计。
僵尸进程太多了怎么办?
僵尸进程没有办法通过kill强制结束。重启之后僵尸进程就消失了。
动态获取进程信息:
top
11:02:29系统时间
up:系统运行的市场
3 user:当前登录系统的用户
load average:0.00,0.01,0.05 系统的负载1分钟0.01 5分钟 0.05 15分钟 系统处理的任务数的平均值
Tasks:219 total,1 running,218 sleeping, 0 stopped,0 zombie
进程信息: 219 total 系统总共有多少个进程
running 运行的进程数
sleeping 休眠的进程数
stop:终止的进程数
zombie:僵尸进程数
%Cpu(s):0.0 us, 0.0
us:系统用户占用cpu的百分比
sy:内核占用cpu的百分比
ni:优先级调度占用的cpu
id:系统空闲的cpu的比率 主要看id
wa:磁盘的读写性能
hi:1分钟内cpu的使用率
si:5分钟内cpu的使用率
st:15分钟内cpu的使用率
进程信息区各列的作用:
pid:进程号
user:进程的用户
pr:优先级
ni:谦让值
VIRT:进程使用的虚拟内存 kb
RES:进程使用的物理内存kb
SHR:共享内存的大小
S:进程的状态
%cpu:进程占用cpu的百分比
%MEM:进程占用物理内存的百分比
TIME+:进程使用cpu的时间总计1/100秒
commd:进程启动的命令。
数字1键:显示cpu的个数和状态
c键:根据cpu占用量的百分比大小,从大到小排列
q键:退出top
top-b -n 1:运行一次之后立刻退出top,相当于ps.
运维的指标:
五大负载:
cpu负载:监控cpu的使用率 工具top,htop,了解cpu是否过载,cpu占用了85%需要注意 90%告警
内存负载:监控内存 free top 内存占用比一般是90%告警。优化:关闭不需要的服务,释放缓存。
清除缓存的命令echo 1 >/proc/sys/vm/drop_c
硬盘负载 1/0 磁盘的读写性能
网络负载:带宽的利用率,流量的使用情况。
进程负载:监控进程使用资源的情况 top ps.
pgrep 查看进程id 一般配合kill一起使用
-a 显示进程名和pid号
-c 仅显示匹配进程的数量 不显示其他内容
-f 匹配进程名以及参数
jobs列出位于后台进程的状态信息
-l 列出所有后台进程的pid号
-p 列出后台进程的组id号
-n 仅显示最近的后台进程
-r 仅显示正在运行的后台进程
-s 仅显示已停止的后台进程
如何把运行的程序调度到后台:
在命令行的结尾加一个&符号,就是把进程调度到后台运行。
fg可以吧后台的任务调度到前台。
定时任务,计划任务:
*****
分 时 日 月 周
分 0-59
时 0-23
日 1-31
月 1-12
周 0-7 0和7都表示周日
***** 一般都是可执行的脚本
Crontab
*该范围内的任意时间
,表示间隔 多个不连续的时间点
10,30,50 ls
-表示连续的时间范围
2-10ls
/表示建个的评率
30 6 */10 * *
30-35 17 * * 3
定时任务,计划任务:
crontab -e 创建定时任务,默认就是当前用户执行
crontab -e -u用户名 指定用户创建定时任务
定时任务在后台执行
删除定时任务:
crontab -r 全部清空 慎用
crontab -e 进去之后 要删哪个删那个
查看定时任务
crontab -l