进程管理
进程管理相当于任务管理器
程序是一串没有运行的代码
进程是运行起来的代码
线程:相当于复制了进程的部分代码,是程序运行之后的真正执行者
linnx系统中启动程序的过程:父进程先启动 → 子进程
子进程的资源由父进程来分配
结束的过程:子进程先结束 → 父进程回收子进程的资源 → 父进程终止
特殊情况:父进程结束,子进程还在。就成为僵尸进程
结束进程的命令:kill -9 强制结束该进程
问:kill是用什么来结束进程?
答:kill只是传递了一个信号,-9表示强制和立即执行。由系统来将进程结束
问:有僵尸进程应该怎么办?
答:少量僵尸进程影响不大,因为僵尸进程占用的系统资源很少,可以忽略不计。
如僵尸进程过多,通过重启可以消除所有僵尸进程。无法用kill指令来杀死僵尸进程。
查看进程信息
静态查看:ps
方法一:ps -aux,主要用来查看进程占用系统资源的情况
a:显示终端上的所有进程,包括其他用户的进程
u:列出进程的执行用户
x:显示当前终端进程的详细信息
静态进程信息的各项含义:
如:

user:进程的用户
pid:进程号,每个进程在系统中运行时的唯一标志,pid都是不重复的,唯一的
%cpu:进程占用cpu的百分比
%mem:进程占用物理内存的百分比
vsz:进程使用的虚拟机大小(kb)
rss:占用物理内存的量(kb)
tty:表示终端。?表示该进程不是由终端启动的
stat:status状态,进程的状态:
① S处于休眠状态,但随时可唤醒
② D不可唤醒的休眠状态
③ R运行中
④ T停止状态,后台进程暂停或者进程处于跟踪调试状态
⑤ Z 僵尸进程,父进程结束了,但子进程还在
补充说明:状态后的字符含义:
s:该进程包含子进程
<:该进程优先级高
N:低优先级
l:该进程有多个线程
+:进程位于前台运行
L:该进程有一部分被锁进内存
start:进程启动的时间
time:进程实际使用cpu运行的时间
command:进程启动的命令
第二种:
ps -elf:也是静态查看进程信息
e:显示系统内的所有进程
l :显示进程的详细信息
f :完整的格式展示进程的信息
查询各项信息含义:
如:

F:内核分配给进程的系统标识
S:进程的状态
uid:该进程的用户
pid:该进程的进程号
ppid:该进程的父进程,谁启动的这个进程
c:进程在生命周期当中的cpu利用
PRI:优先级,数字越大,优先级越低
NI:谦让值
ADDR:进程在内存当中的地址
SZ:假如该进程被换出,需要的交换空间的大小
WCHAN:如果进程处于休眠状态,显示睡眠中的系统函数名
STIME:进程启动的时间
TTY:表示终端。?表示该进程不是由终端启动的
TIME:进程实际使用cpu运行的时间
CMD:进程启动的详细命令
动态查看:top
如:

第一行:
11:01:38 :系统时间
up:系统运行的市场
3user:当前登录系统的用户
load average: 0.00, 0.01, 0.05 :系统的负载,三个数字分别1分钟 ,5分钟 ,15分钟内系统处理的任务数的平均值。
第二行:进程信息
219 total:系统总共有多少个进程
running:运行的进程数
sleeping:休眠的进程数
stop:终止的进程数
zombie:僵尸进程数
第三行:cpu信息
us: 系统用户占用cpu的百分比
sy: 内核占用cpu的百分比
ni:优先级调度占用的cpu
id:系统空闲的cpu的比率 主要看id
wa: 磁盘的读写性能
hi: 1分钟内cpu的使用率
si:5分钟内cpu的使用率
st: 15分钟内cpu的使用率
第四 五行:
等同于free -h:查看内存使用情况
进程信息区各列的作用:
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_caches
硬盘负载:I/O 磁盘的读写性能 iostat
网络负载:带宽的利用率,流量的使用情况。
进程负载:监控进程使用资源的情况 top ps
pgrep命令
pgrep查看进程id,一般配合kill一起使用
-a 显示进程名和pid号
-c 仅显示匹配进程的数量,不显示其他内容
-f 匹配进程名以及参数
jobs命令
jobs列出位于后台进程的状态信息
-l 列出所有后台进程的pid号 ,进程名
-p 列出所有后台进程进程组pid 只有pid
-n 仅显示最近的后台进程
-r 仅显示正在运行的后台进程
-s 仅显示已经停止的后台进程
pstree -up +主进程pid号:查看该进程下的子进程
如何把运行的程序调度到后台:
在命令行的结尾加一个 & 符号,就是把进程调度到后台运行。
fg 可以把后台的任务调度到前台
定时任务,计划任务
crontab -e: 创建定时任务,默认就是当前用户执行
crontab -e -u+ 用户名: 指定用户创建定时任务
crontab -r :删除定时任务。(全部清空 慎用)
如要删除 crontab -e 进去之后,要删哪个删哪个
crontab -l:查看定时任务
crontab -l -u+用户名:展示指定用户的定时任务
设置定时任务格式:***** +一般可执行的脚本或者命令
* * * * *:五个*依次分别表示:分,时,日,月,周
范围:分:0-59
时:0-23
日:1-31
月 :1-12
周 :0-7 0和7都表示周日
* :该范围内的任意时间
,:表示间隔 多个不连续的时间点,例:10,30,50 * * * * , 每个小时的第十分钟,第三十分钟,第五十分钟 都执行一次
- :表示连续的时间范围:例2-10 * * * * ,每小时的2-10分钟内,每分钟都执行
/ :表示间隔的频率 例:*/5 * * * * ,每小时隔五分钟执行一次
1098

被折叠的 条评论
为什么被折叠?



