Linux系统管理-进程管理-进程查看(top、ps、pstree命令)

前言

正在运行当中的程序,系统当中程序想要运行,需要一个或多个进程,才能保证这个程序可以再系统当中可以运行。所以任何程序只要运行,都会产生一个或多个进程(比如apache这样的程序)
进程管理是干什么的???只是为了结束进程吗???不是的
进行分析:
(1) 查看服务器健康状态(看一下CPU、内存的使用率)超80%,需要人为介入,判断是哪个进程占用了哪些资源,如果是MySQL占用了太多的资源,说明mysql的压力非常大,需要做MySQL的查询优化,有可能程序些的有问题。导致服务器压力比较大,如果做了优化,这个进程压力还是这么大,说明这需要使用更好的计算机,需要加内存,或者搭建集群这样的服务器,才可以满足工作的需求。如果正常进程占的资源很高,说明计算机的能力不够,需要用更好的计算机。
(2) 如果是非法进程,不正确的进程,如果只是一个不太常用的进程,应该终止它,如果判断这个程序是一个非法的进程,不能直接终止了事。发现一个没见过的进程,如果直接杀死他,如果他真是一个病毒、木马、过一会真或者下次重启自己就重启了。正确做法: 判断这个进程是什么,找到病毒和木马的主体,然后用手工或者杀毒软件的方式把它彻底清楚,才可以终止这样的进程。不管是不是占用资源的这个进程是不是正常进程,不能直接终止了事。
得出结论:
所以说杀死进程这个工作,其实在进程管理工作的当中是最不常用的工作 主要是判断服务器的健康。
(1) 所有的进程都是有正确终止的手段,比如果虚拟机进程,不是直接杀掉它的,而是再程序中直接点关闭。什么时候需要杀死进程那,当正常终止进程的手段失效的时候,这个时候才会考虑杀死进程。
(2) 进程管理最主要的工作是判断服务器的健康。
理想的运维工程师再理想的状态下,服务器没有死机,服务也没有死机,已经发现我的服务器出现在亚健康状态了,通过人为干预,让服务器从死机的状态当中恢复过来,运维工程师最主要的工作就是判断健康。
(3) 需要搭建专门的监控服务器,可以管理多台服务器。管理起来比较方便,当然也比进程管理命令要麻烦的多。如果杀了正确的进程,可能会导致服务器的崩溃,就算不需要的服务,也应该先尝试正确终止它service httpd stop把服务停掉,如果不生效的话,再考虑杀死他。

1. 进程简介

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

2. 进程管理的作用

判断服务器的健康状态(主要)
查看系统中所有进程
杀死进程

3. 查看系统中所有进程(ps)

命令: ps aux
选项的作用: a查看前台进程 x查看后台进程 u显示这个进程是由那个用户产生的
作用:查看系统中所有进程,使用BSD操作系统格式
我们更习惯的是ps aux(常见用法)

命令: ps -le(这个是unix的格式)
选项的作用: -l显示更加详细的信息,-e显示所有进程
作用:查看系统中所有进程,使用Linux标准命令格式
在这里插入图片描述
Init进程是系统当中,Linux启动的时候调用的第一个进程。他是其他进程的父进程
TTY列的 ? 代表这个进程不是由终端调用的,而是由内核直接产生的。不知道是由那个终端来的。

3.1 第一行的内容含义

第一行的内容 含义
USER 该进程是由哪个用户产生的
PID 进程的ID号
%CPU 该进程占用CPU资源的百分比,占用越高,进程越耗费资源
%MEM 该进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ 该进程占用虚拟内存的大小,单位KB
RSS 该进程占用实际物理内存的大小,单位KB
TTY 该进程是在哪个终端中运行的,其中tty1-tty7代表本地控制台终端,tty1-tty6代表是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端
STAT 进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
START 该进程的启动时间
TIME 该进程占用CPU的运算时间,注意不是系统时间。(TIME占的时间越大,说明越耗资源)
COMMAND 产生此进程的命令名

4. 查看系统健康状态

命令:top [选项]
选项:
-d 秒数:指定top命令每个几秒更新。默认是3秒
在top命令的交互模式当中可以执行的命令:
?或h: 显示交互模式的帮助
P:以CPU使用率排序,默认就是此项
M:以内存的使用率排序
N:以PID排序
q:退出top
在这里插入图片描述
这个东西跟任务管理器非常类似,任务管理器是每一秒管理一次,Linux每三秒更新一次。 这个命令最主要的工作是前五行。帮助你告诉你你的系统目前处于什么健康状况。服务器运行了多长时间,服务器运行的时间越长,从侧面反应你是一个更好的管理员。就是执行top命令,然后截图。晒的一般超过300天的。

4.1 第一行信息为任务队列信息

内容 说明
12:26:46 系统当前时间
up 1 day,13:32 系统的运行时间,本机已经运行1天13小时32分钟
2 users 当前登录了两个用户
load average:0.00,0.00,0.00 系统在1分钟,5分钟,15分钟的平均负载。一般人为小于1时,负载较小。如果大于1时,系统已经超出负荷

如何判断你的负载压力那? 是按照CUP的核数,如果CPU是单核的,这个超过1,说明你在五分钟之前的压力还是非常大的,一次类推,
如果是四核或者八核的,如果是八核的,那么超过八会认为是超载的。
因为现在没有跑任何程序,所以压力比较小。

4.2 第二行为进程信息

内容 说明
Tasks:95total 系统的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程。如果不是0,需要手工检查僵尸进程

僵尸进程: 子进程代码执行完毕,正在等待父进程来回收资源的进程是僵尸进程。
僵尸进程: 这个进程正在终止,但是还没有终止完全,如果有一两个僵尸进程,先不用干预。有可能服务正在停,还没有完全停止,top命令就把它逮住了。过一会再看,一般情况下这个僵尸进程就消失了。如果没有消失,证明这个进程再终止的过程中报错了,卡死了,没有正确终止掉。这个是时候需要手工的判断一下,没啥问题,需要手工进行终止。

4.3 第三行为CPU信息

内容 说明
Cpu(s):0.1%us 用户模式占用的CPU百分比
0.1%sy 系统模式占用的CPU百分比
0.0%ni 改变过优先级的用户进程占用的CPU百分比
99.7%id 空闲CPU的CPU百分比
0.1%wa 等待输入/输出的进程的占用CPU百分比
0.0%hi 硬中断 请求服务占用的CPU百分比
0.1%si 软中断请求服务占用的CPU百分比
0.0%st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比

CPU的信息主要是CUP的空闲率,如果空闲率非常低,比如小于20%,服务器处在高压力运行,这时需要人为介入,如果没有非法进程,这时需要加内存,或者买服务器搭建集群了。

扫描二维码关注公众号,回复: 11682609 查看本文章

4.4 第四行为物理内存信息

内容 说明
Mem:625344k total 物理内存的总量,单位KB
571504k used 已经使用的物理内存数量
53840k free 空闲的物理内存数量,我们使用的时虚拟机,总共分配了628MB内存,所以只有53MB的空闲内存了
65800k buffers 作为缓冲的内存数量

物理内存的总大小,已经用了多少,空闲了多少,有多少是在做缓冲

4.5 第五行为交换分区(swap)信息

内容 说明
Swap:524280k total 交换分区(虚拟内存)的总大小
0k used 已经使用的交互分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交换分区的大小

最大不超过2G,否则只是浪费硬盘空间

4.6 小总结

top命令的内容重点要看的:
第一行: 平均负载
第三行: CUP的空闲率
第四行: 内存的空闲
如果这三个指标过低,证明服务器压力过大,需要人为介入。 Top 是查看健康状态的。
前五行下面的内容和ps的输出非常类似,它默认按照CPU的占用率为百分比进行排序的, 用Shift + m以内存的使用率排序,top命令或者是Windows中的任务管理器是比较耗费资源的,看一下就可以了,没事的时候,不要老打开。

5. 查看进程树

命令: pstree [选项]
选项:
-p: 显示进程的PID
-u: 显示进程的所属用户

在这里插入图片描述

tree是查看目录树,pstree是查看进程树
init是所有进程的父进程,底下的进程依赖父进程。

猜你喜欢

转载自blog.csdn.net/weixin_46818279/article/details/107977108