1.进程管理
1.1概念
进程管理相当于windows的任务管理器
程序是一串没有运行的代码,进程是运行起来的代码
线程:相当于复制了进程的部分代码,程序运行起来之后,真正执行的是线程。
Linux系统当中启动程序的过程:
父进程先启动——子进程 子进程的资源由父进程来进行分配
结束的过程:
子进程先结束——父进程收回子进程的资源——父进程才会终止
特殊情况: 父进程结束了,子进程还在。形成僵尸进程
1.2查看进程信息——ps
查看进程信息:静态查看、动态查看 ps——静态查看信息进程信息
1.2.1静态方法一
ps -aux主要用来查看进程占用系统资源的情况
a:all 显示终端上的所有进程,包括其他用户的进程
u:user 列出进程的执行用户
x:显示当前终端进程的详细信息
1.2.1.1进程信息下每列的含义

USER:进程的用户
PID:进程号,每个进程在系统运行时的唯一标识。每个PID都是不重复的
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程使用的虚拟内存大小,单位kb
RSS:占用物理内存的量,单位kb
TTY:表示终端。?表示该进程不是由终端启动的
STAT:status状态,指的是进程的状态
状态1、S:处于休眠状态,但是随时可唤醒
2、D:不可唤醒的休眠状态
3、R:运行
4、T:停止状态,后台进程暂停或者进程处于跟踪调试状态
5、Z:僵尸进程,父进程结束了但是子进程还在
START:进程启动的时间
TIME:进程实际使用CPU运行的时间
COMMAND:进程启动的命令
1.2.1.2补充说明
在状态后面的字符含义
s:该进程包含子进程
<:该进程的优先级高
N:低优先级
l:该进程有多个线程
+:该进程位于前台运行
L:该进程有一部分被锁进内存。在内存中运行不会被写入磁盘
1.2.2方法二
ps -elf 也是静态查看进程的方法
e:显示系统内的所有进程
l:显示进程的详细信息
f:完整的格式展示进程的信息
1.2.2.1进程信息下每列的含义

F:内核分配给进程的系统标识
S:进程的状态
UID:该进程的用户
PID:该进程的进程号
PPID:该进程的父进程,谁启动的这个进程
C:进程在生命周期当中的CPU利用率
PRI:优先级,数字越大优先级越低
NI:谦让值
ADDR:进程在内存当中的地址
SZ:假如该进程被换出,需要的交换空间的大小
WCHAN:如果进程处于休眠状态,显示睡眠中的系统函数名
STIME:进程启动的时间
TIME:进程实际使用CPU运行的时间
CMD:进程启动的详细命令
1.2.3ps的用法
ps -aux | grep 进程名

ps -elf | grep 进程名

1.3结束进程的命令
kill -9 强制结束该进程
问:kill进程是谁来结束进程的?
kill只是传递了一个信号,-9表示强制和立即,系统将进程结束
1.4特殊进程:僵尸进程
父进程结束了,子进程还在,形成僵尸进程
问:如果有僵尸进程该怎么办?
少量的僵尸进程对系统影响不大,因为僵尸进程所占的系统资源很少,可以忽略不计。
问:僵尸进程太多了怎么办?
僵尸进程没有办法通过kill强制结束,重启之后僵尸进程自动消失。
1.5动态获取进程信息:top

1.5.1信息的含义
(1)top - 11:02:29 up 2:44, 3 users, load average: 0.00,0.01,0.05
11:02:29 系统时间
up:系统运行的时长
3 user:当前登录系统的用户
load average:0.00,0.01,0.05:系统的负载 1分钟 5分钟 15分钟 ,表示1分钟5分钟15分钟内系统处理的任务数的平均值
(2)Task:219 total, 1 running, 218 sleeping, 0 stopped, 0 zombie
进程信息:219 total 系统总共有多少个进程
running:运行的进程数
stop:终止的进程数
zombie:僵尸的进程数
(3)%Cpu9(s): 0.0 us,0.0 sy, 0.0 ni,100.0 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的使用率
(4)KiB Mem: 3861508 total, 367984 free, 831572 used,2661952 buff/cache
KiB Swap:4063228 total, 4063228 free,0 used, 2517988 avail Mem
这两行就是free -h显示的信息
1.5.2进程信息区各列的作用

PID:进程号
USER:进程的用户
PR:优先级
NI:谦让值
VIRT:进程使用的虚拟内存,单位kb
RES:进程使用的物理内存,单位kb
SHR:共享内存的大小
S:进程的状态
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
TIME+:进程使用CPU的时间总计1/100秒
COMMAND:进程启动的命令
1.5.3一些操作
数字1键:显示CPU的个数和状态
c键:根据CPU占用的量的百分比大小,从大到小排序
q键:退出top
top -b -n 1:运行一次之后立即退出top,相当于ps
1.6pgrep
查找进程id,一般配合kill一起使用
-a:显示进程名和pid号
-c:仅显示匹配进程的数量,不显示其他内容
-f:匹配进程名以及参数
1.7jobs
列出位于后台进程的状态信息
-l:列出所有后台进程的pid号,进程名
-p:列出所有后台进程进程组id,只有pid
-n:仅显示最近的后台进程
-r:仅显示正在运行的后台进程
-s:仅显示已停止的后台进程
2.运维的指标
五大负载:
CPU负载:监控CPU的使用率,工具:top、htop,了解CPU是否过载,CPU占用了85%需要注意90%告警
内存负载:监控内存 free top,内存的占用比一般是90%告警,优化:关闭不需要的服务,释放缓存。命令:echo 1 > /proc/sys/vm/drop_caches
硬盘负载:I/O 磁盘的读写性能 iostat
网络负载:带宽的利用率,流量的使用情况。命令:yum -y install iftop ifconfig
进程负载:监控进程使用资源的情况 top ps
3、如何把运行的程序调度到后台
在命令行的结尾加一个&符号,就是把进程调度到后台运行 cd -a/mnt/ /opt/ &
fg 可以把后台的任务调度到前台
4、定时任务、计划任务
4.1定时任务的格式
表示为:* * * * *
每个*的含义:分时日月周
分:分钟0-59
时:小时0-23
日:1-31
月:1-12
周:0-7,0和7都表示周日
* * * * * +所有Linux可执行的命令,一般是可执行的脚本
* 表示该范围内任意时间
, 表示间隔,多个不连续的时间点
例:1,3,5 * * * * ls 表示每小时的第1、3、5分钟分别执行ls
10,30,50 * * * * ls 表示每10、30、50分钟执行一次ls
- 表示连续的时间范围
例:2-10 * * * * ls 表示从第2到第10分钟每分钟都执行ls
/ 表示间隔的频率
例:*/5 * * * * ls 表示每5分钟执行一次ls
题:每天早上的8点30分执行一次ls 30 8 * * * ls
每天的13-16点的30分执行一次 30 13-16 * * * ls
每个月中每隔10天的早上6点30分执行一次 30 6 */10 * * ls
每周三的下午的17点的30-35分钟执行ls 30-35 17 * * 3 ls
4.2创建定时任务crontab
crontab -e:创建定时任务,默认就是当前用户执行(和vim的操作一样)

crontab -e -u +用户名:指定用户创建定时任务 定时任务在后台执行
crontab -l -u +用户名:展示指定用户的定时任务
crontab -e:进入编辑不要哪个删哪个
crontab -r:全部清空,慎用
crontab -l:查看定时任务
1100

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



