进程管理相当于任务管理器:
程序是一串没有运行起来的代码
进程是运行起来的代码
线程:线程相当于复制了进程的部分代码,程序运行起来之后,真正的执行者是线程。
linux系统当中启动程序的过程:
父进程先启动---------子进程
启动进程:
进程的资源由父进程来进行分配
结束进程:
子进程结束,父进程收回子进程的资源,父进程才会终止
特殊情况:
父进程结束了,子进程还在?进入僵尸进程
查看进程信息 静态查看,动态查看
ps-----静态查看进程信息
方法一:
ps-aux
a:显示终端上所有进程,包括其他用户的进程。
u:列出进程的执行用户。
x:显示当前终端进程的详细信息。
ps -aux 的内容
user:进程用户
PID:进程号,每个进程在系统中运行时的唯一标识。每个pid都是不重复的。
%CPU:进程占用cpu的百分比
%MEM:进程占用物理内存的百分比
vsz:进程使用的虚拟内存大小(kb)
RSS:占用物理内存的量(kb)
TTY:标识终端。?标识不是由终端启动的
STAT:status状态,指的是进程的状态:
1.s:处于休眠状态,但是随时可唤醒。
2.D:不可唤醒的休眠状态。
3.R:运行状态
4.T:停止状态,后台进程暂停或者进程处于跟踪调试状态。
5.Z:僵尸进程,父进程结束但是子进程还在。
TIME:进程实际使用cpu的运行时间。
COMMAND:进程启动的命令。
补充说明
状态字符后的字符含义:
s:该进程包含子进程。
<:该进程优先级高。
N:低优先级。
l:该进程有多个线程。
+:该进程位于前台运行。
L:该进程有一部分被锁进内存。
ps -aux 主要用来查看占用系统资源的情况
方法二
ps -elf
也是静态查看进程信息的fangfa
e:显示系统内的所有进程
l:显示进程的详细信息
f:完整的格式展示进程的信息
F:内核分配给进程的系统标识
S:进程的状态
UID:该进程的用户
PID:该进程的进程号
PPID:该进程的父进程,谁启动二这个进程
c:进程在生命周期当中的cpu利用
PRI:优先级 数字越大,优先级越低
NT:谦让值
ADDR:进程在内存当中的地址
SZ:假如该进程被唤出,需要的交换空间的大小
WCHAN:如果进程处于休眠状态,显示睡眠中的系统函数名
STIME:进程启动的时间
time:进程实际使用cpu运行的时间
CMD:进程启动的详细命令。
进程管理:
面试题:
kill进程是啥来结束进程?
kill只是传递了一个信号,-9表示强制和立即的意思。系统将进程结束。
结束进程的命令:kill -9 进程号 强制结束该进程
特殊的进程,僵尸进程
面试题:
如果有僵尸进程你该怎么办?
少量的僵尸进程影响不大,因为僵尸进程所占的系统资源很少,可以忽略不计。
僵尸进程太多了怎么办?
僵尸进程没有办法通过kill强制结束。重启之后僵尸进程就消失了。
top 动态查看进程信息
top - 11:02:39 up 5:19, 4 users, load average: 0.00, 0.01, 0.05
11:02:39:系统时间
up:系统运行的市场
4 users:当前登录系统的用户
load average: 0.00, 0.01, 0.05:系统的负载1分钟0.01 5分钟0.05 15分钟 系统处理任务的平均值
Tasks: 314 total, 1 running, 313 sleeping, 0 stopped, 0 zombie
进程信息:314total 系统总共有多少个进程
running 运行的进程数
sleeping 休眠的进程数
stop 终止的进程数
zombie僵尸进程数
%Cpu(s): 0.1 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us:表示系统用户占用cpu的百分比
sy:内核占用cpu的百分比
ni:优先级调度占用的cpu
id:系统空闲的cpu的比率
wa:磁盘的读写性能
hi:1分钟之内cpu的使用率
si:5分钟内cpu的使用率
st:15分钟内cpu的使用率
KiB Mem : 7990276 total, 3324416 free, 1452516 used, 3213344 buff/cache
KiB Swap: 6291452 total, 6291452 free, 0 used. 6018560 avail Mem
这两行就是free -h 的信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID:进程号
USER:进程的用户
PR:优先级
NI:谦让值
VIRT:进程使用的虚拟内存kb
RES:进程使用的物理内存kb
SHR:共享内存的大小kb
S:进程的状态
%CPU:进程占用cpu的百分比
%MEM:进程占用物理内存的百分比
TIME+:进程使用cpu的时间总计 1/100秒
COMMAND:进程启动的命令
数字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
iftop htop iostat top ps
命令
pgrep 查找进程id一般配合kill使用
-a 显示进程名pid号
-c 仅显示匹配进程的数量,不显示其他内容
-f 匹配进程名以及参数
jobs列出位于后台进程的状态信息
-l 列出所有后台进程的pid号
-p 列出所有后台进程的组pid 只有pid
-n 仅显示最近的后台进程
-r 仅显示后台正在运行的
-s 仅显示已经停止的后台进程
如何把运行的程序调度到后台:
在命令行的结尾加一个&,就是把进程调度到后台运行(cp -a /mnt/ )
fg 可以把后台的运行任务调度到前台
计划任务
定时任务-计划任务
grontab
*表示该范围内的任意时间
, 表示间隔,多个不连续的时间点
1,3,5ls
— 表示连续的时间范围
2-10ls
/ 表示间隔的频率
*/5******ls
Crontap -e 创建定时任务,默认就是当前用户执行
Crontap -e -u 用户名 指定用户创建定时任务
定时任务在后台执行
crontap -l -u 展示指定用户的定时任务
删除定时任务
crontap -r删除定时任务(全部清空,慎用)
crontap -e进入之后,要删哪个删哪个