进程和计划任务管理
进程和计划任务管理
- 程序:没有运行的代码
- 进程:运行起来的代码就是程序
- 线程:程序的副本,把进程复制了一部分,复制了进程的部分代码,需要运行的代码由线程来完成
大进程 -------->小进程
- 父进程和子进程:
先启动父进程,系统分配给父进程必要的资源(启动和运行)--------->子进程(父进程)--------->父进程来分配子进程的资源。
结束:子进程先结束,父进程收回子进程的资源之后,父进程才会终止
- 父进程结束了,但是子进程还在,进程的状态是什么
在linux系统上如何查看进程的信息:
- 静态
ps:查看静态的进程信息
-a:all ----- 显示当前终端上所有的进程,包括其他用户的进程
-u:user ----- 列出该进程所属的用户
-x:显示进程的详细信息
ps -aux
user:进程所属用户
pid:进程的pid号,进程号,每个程序的进程都是唯一的,不重复,也是进程在系统中的唯一身份标识
%cpu:进程占用系统cpu的百分比
%mem:进程占用系统内存的百分比
VSZ:虚拟内存,该进程占用虚拟内存量,单位是kb,虚拟内存就是内存中的一部分,用来缓解物理内存不足时临时顶替,缓解系统压力
RSS:物理内存:占用物理内存的量是多少,单位是kb
tty:启动进程的终端名,不是从终端启动的显示为问号?
STAT:进程的状态 ★★★★★★
- S:休眠状态,运行完毕之后进入待机时间,需要被运行会立刻被唤醒(可唤醒的休眠状态)
- R:runing,进程正在运行
- T:该进程处于停止状态
- D:不可中断的休眠状态
- Z:僵尸进程 ---------父进程已终止,但子进程还在运行
- I:表示进程处于空闲状态 idle (空闲)------- 大写的i
- s:表明该进程有子进程
- <:该进程执行的优先级更高
- N:表明该进程执行的优先级较低
- l:子进程当中的线程
- 加号:表示进程在前台运行
START:进程被触发启动的时间
TIME:进程实际使用cpu的时间
command:进程的启动命令
ps:
-
e:显示系统内所有的进程信息
-
l:长格式,详细的展示进程的信息
-
f:完整的格式展示进程的信息
ps -elf -
F:内核分配给进程的系统标记
-
S:进程的状态
-
UID:进程的用户
-
PID:进程在系统中的id号
-
PPID:显示该进程的父进程号
-
C:进程生命周期中占用cpu的利用率
-
PRI:进程的优先级,数字越大,优先级越低
-
NI:谦让值,用来参与决定优先级
-
ADDR:进程在内存当中的地址
-
SZ:进程占用交换空间(swap空间)的大小
-
WCHAN:进程如果处于休眠状态,显示睡眠中的系统函数名
-
STIME:进程启动时的系统时间
-
TTY:进程启动的终端
-
TIME:运行进程累计使用cpu的时间
-
CMD:进程的启动命令
ps -aux:进程占用的系统资源的情况
ps -elf:进程在系统中的详细信息
怎么查看一个进程在系统中的资源占用情况,以及占用cpu过高,处理的方法?(面试题)
↓
1、ps -aux定位找到这个进程 --------->pid号
2、ps -elf | grep id号 查询它的详细信息
3、根据情况来进行处理(处理之前要请示,通告)
4、kill -9:-9 —强制杀死,kill只是给内核发送信息,-9就是信号的详细信息,执行操作的是内核不是命令
kill -9 pid号
僵尸进程该如何处理?(面试题)★★★★★
↓
僵尸进程占用系统的资源很小,完全可以忽略不计
apt -y install gcc
vim wait.c ------创建一个僵尸进程的脚本
gcc wait.c -o wait.out
./wait.out
僵尸进程无法使用kill杀死,强制也不行
↓
重启
- 动态
top :动态查看系统进程的命令
↓
数字键1:显示所有cpu的状态
c:按使用大小显示
q:退出动态展示
top -b -n 1:运行一次就退出(相当于静态展示top命令)
11:12:04 —系统时间
up 3:35 —系统已经运行了多久
3 user —当前登录系统的用户
load average:系统的平均载荷单位时间系统处理的任务数
↓
1 分钟 5分钟 15分钟内系统处理任务数的平均值
↓
0.02,0.01,0.00
任务:303 total,1running,299sleeping, 3 stopped, 0 zombie
↓
当前系统一共有303个进程
running 运行
stopped 终止的进程
zombie 系统的僵尸进程数
%Cpu(s):0.3us 0.2sy 0.0ni, 99.5id, 0.0wa, 0.0si, 0.0st
系统cpu的使用情况:
- us:用户占用cpu的百分比★★★
- sy:内核占用cpu的百分比★★
- ni:优先级调度占用cpu的百分比
- id:系统空间空闲的pu百分比★★★
- wa:磁盘读写性能
- hi:1分钟内系统进程占用cpu的百分比
- si:5分钟内系统进程占用cpu的百分比
- st:15分钟内系统进程占用cpu的百分比
free 查看内存 -h(人性化显示)
系统的五大负载指标
1、cpu:
监控cpu的指标:top/htop (top的升级版)
2、内存:
监控内存:free/top
清除内存缓存:echo 1 > /proc/sys/vm/drop_caches★★★★★★
3、磁盘负载:
磁盘的I/O
- iostat
4、网络负载:
监控网络带宽
优化网络传输
- ifconfig
- iftop
5、进程负载
查看系统进程占用cpu,内存,磁盘,网络来进行监控
- top
- ps -aux
- iftop
TX:发送
RX:接收
进程号 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
↓
- 进程号:pid号
- user:进程的用户名
- pr:进程执行的优先级
- ni:谦让值
- virt:进程使用虚拟内存的总量 ,单位kb
- res:系统使用物理内的大小,单位kb
- shr:进程共享内存的大小,单位kb
- %cpu:进程占用cpu百分比
- %mem:进程占用内存百分比
- time+:进程占用cpu的总时间
- command:进程的启动命令
pgrep:根据进程名称查找进程id
pgrep -a :显示进程名 -----详细信息以及pid号
-c :仅显示进程的数量
-f:匹配进程名及其参数
pgrep一般都是和kill结合使用
jobs用于列出后台运行的进程信息
↓
-l :显示所有后台进程的pid号
&:在命令的结尾加上一个&符号,进程就会在后台运行,关闭终端不影响进程的运行
-n:仅显示最近的后台进程
-r:仅显示正在运行的后台进程
-s:仅显示已停止的后台进程
pstree:查看进程所属的线程
-u:显示线程的用户
-p:显示线程的pid号
定时任务(计划任务)
crontab:定时任务的命令
1、必须要用绝对路径指示脚本的位置
2、脚本一定要有执行权限**
-
1,3,4 * * * * ls /opt
,:表示间隔的多个不连续的时间点 -
1-5 * * * * ls /opt
-:表示连续的时间 -
*/5 * * * *
/表示频率
分 时 日 月 周: * * * * *
crontab
-e :创建定时任务
-u:指定用户(哪个用户执行定时任务)
-r:清空所有定时任务(千万不要用)
-l -u 用户名:查看用户的定时任务