进程管理、

进程管理

程序:应用程序安装包,为了实现某些功能写的的一堆代码文件(静态)
进程:正在运行的程序,即程序的运行过程(动态)
线程:比进程更小的一种概念,一个进程可以启动多个线程,相当于程序中的多个窗口
僵尸进程:进程生命周期结束,但pid未被回收
孤儿进程:父进程结束了,父进程被回收,子进程未被回收

ps 查看进程

ps默认查看当前进程
ps aux是常用组合,查看进程用户、pid、占用CPU的百分比、占用内存的百分比、状态、执行的命令
命令参数:
-a #显示当前终端的所有进程
-u #选择有效的用户ID或者是用户名
-x #显示没有控制终端的进程,同时显示各个命令的具体路径(查看后台所有的进程)
-e #显示所有进程
f #格式化化输出

结果:
user:开启进程的用户
进程:进程的ID号
%CPU: CPU的占用率
%MEM:内存占用率
VSZ: 占⽤虚拟内存,单位:kb(killobytes)(进程启动时默认向计算机申请的内存)
RSS:实际使用内存,RSZ是Resident Set Size,常驻内存⼤⼩,即进程实际占⽤的物理内存⼤⼩
TTY: 进程运⾏的终端
PPID:父进程ID
STAT:进程的运行状态
(1)R:正在运行态
(2)+:前台运行状态
(3)S:睡眠态,(可中断睡眠)
(4)D:不可中断睡眠态
(5)T:停止的状态
(6)Z:僵尸进程,进程生命周期结束,但pid未被回收
(7)X:死掉的进程
(8)<: 标注了<⼩于号代表优先级较⾼的进程
(9)N :N代表优先级较低的进程
(10)s :包含⼦进程
(11) l: ⼩写字⺟l,代表以线程的⽅式运⾏,即多线程
(12)|: 管道符号代表多进程
START: 进程的启动时间
(13)TIME: 进程占⽤CPU的总时间
(14)COMMAND: 进程⽂件,进程名带[]号的代表内核态进程,不带[]号的代表⽤户态进程
D与Z状态的进程都⽆法⽤kill -9杀死

top基本⽤法:

top的参数
-d : 设置top的刷新频率
-p : 设置查看的进程PID
top -d 1 -p pgrep nginx | head -1
-u : 查询指定用户的经常的进程
top -u oldboy
-n : 表示查询n次
top -d 0.1 -u oldboy -n 20
命令:

M 按内存的使⽤排序
P 按CPU使⽤排序
N 以PID的⼤⼩排序
R 对排序进⾏反转
f ⾃定义显示字段
1 显示所有CPU的负载
s 改变画⾯更新频率
h|?帮助
< 向前
> 向后
z 彩⾊
l – 关闭或开启第⼀部分第⼀⾏ top 信息的表示
t – 关闭或开启第⼀部分第⼆⾏ Tasks 和第三⾏ Cpus 信息的表示
m – 关闭或开启第⼀部分第四⾏ Mem 和 第五⾏ Swap 信息的表示
N – 以 PID 的⼤⼩的顺序排列表示进程列表
P – 以 CPU 占⽤率⼤⼩的顺序排列进程列表
M – 以内存占⽤率⼤⼩的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top

up前是系统时间
up后是开启时间
load average: 0.01, 0.42, 0.73
0.01 : 一分钟平均负载
0.42 : 五分钟平均负载
0.73 : 十五分钟平均负载
这里提到的平均负载是什么呢
平均负载是指,单位时间内,系统处于可运⾏状态和不可中断状态的平均进程数,也就是平均活跃进
程数,理论上平均负载在50%-60%是一个界限,如果超过这个数值,咱们计算机的CPU可能就不能给你回应了,而低于这个界限很多的话,会照成很多CPU在闲着。
上面这三个值的样本,我们最应该关注哪一个呢?
我们最应该关注的是一分钟和十五分钟的值,若旦1分钟的平均负载接近或超过了CPU的个数,就意味着,系统正在发⽣过载的问题,这时候就得分析问题了, 并且要想办法优化。如果1分钟的值,远⼩于15分钟的值,那么证明系统的平均负载逐渐降低,即我们的系统刚刚经历过⼤⻛浪,但⽬前已逐渐趋于平均。⾄于15分钟区间内,系统负载上升的原因,还需要我们认真查明

stress是Linux系统压⼒测试⼯具,可⽤作异常进程模拟平均负载升⾼的场景,需要安装yum
install stress -y
[root@egon ~]# stress --cpu 4 --timeout 3000 # 3000代表持续执⾏3000秒
补充1:安装yum install sysstat -y会得到下述两个命令
mpstat 是多核CPU性能分析⼯具,⽤来实时检查每个CPU的性能指标,以及所有CPU的平均指标。
[root@egon ~]# mpstat -P ALL 3 # 3s输出⼀组所有指标
pidstat 是⼀个常⽤的进程性能分析⼯具,⽤来实时查看进程的CPU,内存,IO,以及上下⽂切换
等性能指标。
[root@egon ~]# pidstat -u 1 5 # 1秒⼀次,总共输出5次

[root@localhost ~]# top
[root@localhost ~]# top -d 1 # 1秒刷新⼀次
[root@localhost ~]# top -d 1 -p 进程的pid
[root@localhost ~]# top -d 1 -p pgrep nginx | head -1
[root@localhost ~]# top -d 1 -p pgrep sshd | head -1,33 # 查看sshd以及
pid为33的进程
[root@localhost ~]# top -d 1 -u nginx # 查看指定⽤户进程
[root@localhost ~]# top -b -n 2 > top.txt # 将2次top信息写⼊到⽂件

Tasks
Tasks: 125 total, 1 running, 124 sleeping, 0 stopped, 0 zombie
total : 当前系统一共运行的是125个进程
running : 正在运行的是1个
sleeping : 124个处于睡眠状态
stopped : 停止运行的进程数
zombie :僵尸进程数

%Cpu0 : 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空闲所占时间百分比
wa : 在单位时间内CPU阻塞态所占CPU时间的百分比
hi : 硬件中断
si : 软件中断
st : 其他占用CPU时间百分比

KiB Mem : 2027892 total, 1234180 free, 176352 used, 617360 buff/cache
total :系统总内存
free :系统空闲内存
used : 系统使用内存
buff/cache : 缓存使用内存
avail Mem :系统可用内存

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID : 进程编号
USER : 启动进程的用户
PR : 优先级
NI :nice值
VIRT : 虚拟内存
RES : 使用内存
SHR : 共享内存
%CPU : cpu使用率
%MEM :内存使用率

3、top快捷键
按1 : 展示所有的CPU的详情
按s : 设置top监控频率(默认3秒)
按m : 按照内存排序
按z : 添加颜色
按p : 按照CPU排序
按l : 展示CPU总负载(默认显示

猜你喜欢

转载自blog.csdn.net/givenchy_yzl/article/details/115003347