目录
进程计划任务管理
进程管理:相当于windows的任务管理器
程序是一串没有运行的代码,进程是运行起来的代码
线程:相当于复制了进程的部分代码,程序运行起来之后,真正执行的是线程。
一、linux系统启动程序
1、启动过程
父进程先启动,再启动子进程
子进程的资源是由父进程来进行分配。
2、结束过程
子进程先结束——父进程收回子进程的资源——父进程才会终止
3、特殊情况
僵尸进程:父进程结束了,子进程还在。
4、查看进程信息
两种方法:静态查看、动态查看
静态查看进程信息——ps
方法一:ps -aux
——主要用来查看进程占用系统资源的情况
a:显示终端上的所有进程,包括其他用户的进程
u:列出进程的执行用户
x:显示当前终端进程的详细信息
1、USER:进程的用户
2、PID:进程号,每个进程在系统中运行时的唯一标志。每个pid都是不重复的。
3、%CPU:进程占用cpu的百分比
4、%MEM:进程占用物理内存的百分比
5、VSZ:进程使用的虚拟内存(kb)
6、RSS:占用物理内存的量(kb)
7、TTY:表示终端 ?表示该进程不是由终端启动而是由系统自己启动的
8、STAT:status状态
进程的状态:
S:处于休眠状态,但是随时可唤醒。
D:不可唤醒的休眠状态
R:运行
T:停止状态,后台进程暂停或者进程处于跟踪调试状态。
Z:僵尸进程
补充说明:
状态后面的字符含义:
s:该进程包含子进程
<:该进程优先级高
N:表示低优先级
l:该进程有多个线程
+:进程位于前台运行
L:该进程有一部被锁进内存
9、START:进程启动的时间
10、TIMEI:进程实际使用cpu运行的时间
11、COMMAND:进程启动的命令
方法二:ps -elf
e:显示系统内的所有进程
l:显示进程的详细信息
f:完整的格式展示进程的信息
1、F:内核分配给进程的系统标识
2、S:status,进程状态
3、UID:该进程的用户
4、PID:该进程号
5、PPID:该进程的父进程,谁启动的这个进程
6、C:进程在生命周期当中的cpu利用率
7、PRI:表示优先级,数字越大优先级越低(默认80)
8、NI:谦让值
9、AADR:表示进程在内存当中的地址
10、SZ:假如该进程被换出,需要交换空间大小,交换进程
11、WCHAN:如果进程处于休眠状态,显示睡眠中的系统函数名
12、STIME:进程启动时间
13、TIME:进程实际使用cpu运行的时间
14、CMD:进程启动的详细命令
使用方法
一般结合|使用
ps -aux | grep nginx
进程管理
1、结束进程的命令:kill -9 强制结束该进程
面试题:kill进程是谁来结束进程?
kill只是传递一个信号,-9表示强制和立即,系统将进程结束。
特殊进程:僵尸进程。
面试题:如果有僵尸进程应该怎么办?
少量僵尸进程影响不大,因为僵尸进程所占的系统资源很少,可以忽略不计。
僵尸进程太多了怎么办?
僵尸进程用kill -9 杀不掉
重启之后僵尸进程自动消失
动态查看进程信息——top
top - 15:02:45 up 18:46, 3 users, load average: 0.00, 0.01, 0.05
——15:02:45系统时间
——up:系统运行时长
——3 user:当前登录系统用户
——load average:0.00,0.01,0.05 为系统负载 0.00表示1分钟,0.01表示5分钟,0.05表示15分钟,系统处理的任务数的平均值
第二行
Tasks: 229 total, 1 running, 227 sleeping, 1 stopped, 0 zombie
——进程信息:229 total 当前系统总共有多少进程
——running 运行的进程数
——sleeping 休眠的进程数
——stopped 终止的进程数
——zombie 僵尸进程数
第三行
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
——us:系统用户占用cpu的百分比
——sy:内核占用cpu的百分比
——ni:优先级调度占用的cpu
——id:系统空闲的cpu比率,主要看id
——wa:磁盘的读写性能
——hi:1分钟内cpu的使用率
——si:5分钟内cpu的使用率
——st:15分钟内cpu的使用率
第四行
这两行就是free -h
KiB Mem : 3861508 total, 1118012 free, 772220 used, 1971276 buff/cache KiB Swap: 4063228 total, 4063228 free, 0 used. 2658320 avail Mem
进程信息取各列的作用
pid:进程号
user:进程的用户
pr:优先级
ni:谦让值
VIRT:进程使用的虚拟内存 kb
RES:进程使用的物理内存 kb
SHR:共享内存的大小
S:进程的状态
TIME+:进程使用cpu的时间总计 范围:1/100秒
commd:进程启动的命令
命令总结
数字1键:显示cpu的个数
c键:根据cpu占用量的百分比大小,从大到校排列
q键:退出top
tob -b -n 1:运行一次之后立刻退出top,相当于ps静态查看
5、运维的指标—五大负载
1、cpu负载
监视cpu的使用率。工具:top、htop,了解cpu是的过载,cpu占用了85%需要注意,90%告警
2、内存负载
健康内存free top 内存占用比一般是90%告警。优化:关闭不需要的服务,释放缓存。
echo 1 > /proc/sys/vm/drop_caches清除缓存命令
3、硬盘负载
iostat 磁盘的读写性能
4、网络负载
带宽的利用率,流量的使用情况。
yum -y install iftop
ifconfig
5、进程负载
监控进程使用情况 top或者ps
pgrep命令
pgrep:查找进程id 一般配合kill一起使用
-a 显示进程名和pid号
-c 仅显示匹配进程的数量,不显示其他内容
-f 匹配进程名及其参数
jobs命令
jobs :列出位于后台进程的状态信息
-l 列出所有后台进程的pid号,进程名
-p 列出所有后台进程组id 只有pid
-n 仅显示最近的后台进程
-r 仅显示正在运行的后台进程
-s 仅显示已停止的后台进程
如何把运行的程序调到后台?
在命令行的结尾加一个&符号,就是把进程调度到后台运行
fg 可以把后台的任务调度到前台
二、计划任务—定时任务
1、格式
格式* * * * *
对应分 时 日 月 周
分为0-59、时为0-23、日为1-31、月为1-12、周为0-7,其中0和7都表示周日
格式* * * * * 后跟可执行脚本
2、创建定时任务
crontab 创建定时任务
crontab -e 创建定时任务,默认就是当前用户执行
crontab -e -u 用户名 指定创建用户创建定时任务
crontab -l 展示定时任务
crontab -l -u展示定时用户的定时任务
如:* 表示该范围内的任意时间
如:,表示间隔 多个不连续的时间点
10,30,50* * * *ls
如:- 表示连续的时间范围
2-10* * * *ls
如:/ 表示间隔的频率
举例
1、每天早上的8点30分,执行一次ls
30 8 * * * ls
2、每天的13-16点30分执行一次ls
30 13-16 * * *
3、每个月中,每隔10天的早上6点30分执行一次
30 6 * /10 * *
4、每周三的下午的17点的30-35分钟执行ls
30-35 17 * * 3
3、删除定时任务
crontab -r 是清空 不要用!!!
删除的话crontab -e进去不要哪个删哪个
4、查看定时任务
crontab -l