Linux基础知识系统学习.NO18——进程的管理查看与终止

9. Linux系统管理

9.1. 进程管理

9.1.1. 进程简介

进程是指正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并且占用一定的系统资源。
进程管理的作用是判断服务器健康状态、查看系统中所有进程和杀死进程。
判断服务器健康状态是进程管理最重要的功能,通过进程管理来保护服务器。
查看系统中资源可以有效的管理进程。
杀死进程却是最不常用的,如果是合理进程占用了CPU,那么应该是想办法扩展CPU,添加内存等办法,而不能杀死它,如果是非法进程比如病毒,应该是先删除病毒本身,然后再杀死进程,杀死进程主要是用于正常的进程不能正常关闭的时候才使用。

9.1.2. 查看进程的健康状态

使用命令top+选项,查看进程的统计数据。-d秒数,指定top命令每隔几秒更新(top什么都不跟就相当于是top -d 3);-b,使用批处理模式输出;-n次数,指定top命令执行的次数(一般和b连用),-p数值,只查看以该数值为PID的进程的状态。
top命令的显示会按照CPU的占用率从高到低排列。但是只有一页,使用top -bn 1 >top.txt 就能看到所有的进程并且写入top.txt.:
使用top命令就会进入top命令的交互界面,需要按Ctrl+c或者q才能退出。在交互界面,按P以CPU占用率排列(默认);按M以内存占用率排列,按N以PID排序;按?或h显示交互模式的帮助。
top显示结果:
第一行:top – 当前系统时间 up 系统开机时间,系统登录用户个数,load average:1分钟前系统平均负载,5分钟前系统平均负载,10分钟前系统平均负载
第二行:Task:总进程数,正在运行进程数,休眠状态运行数,停止状态运行数,僵尸进程数。
第三行:Cpu(s):用户模式占用的CPU百分比,系统模式占用的CPU百分比,改变过优先级的用户进程占用的CPU百分比,空闲CPU的CPU百分比,等待输入/输出的进程的占用CPU百分比,硬中断请求服务占用的CPU百分比,软中断请求服务占用的CPU百分比,虚拟时间百分比。
第四行:Mem:内存总大小,已用内存,剩余内存,缓冲内存
第五行:Swap:交换分区总大小,已使用交换分区大小,剩余交换分区大小,缓存大小
通过平均负载可以大致判断CPU负载情况,单核CPU的情况下,负载值超过1,一般认为系统超负荷,但是只是经验判断,不能做决定,具体还跟系统性能有关。
僵尸进程数如果不是0就应该手动检查,僵尸进程是指两个有依赖性的进程,如果关闭了底层被依赖的进程,那么理论上上层的依赖进程也应该被关闭,但是如果上层的依赖进程没有被关闭,那该进程就会卡在系统,也没有用处,成为了僵尸进程。发现僵尸进程可能是它正在关闭,所以应该等一下,过段时间如果还是僵尸进程那么就应该考虑杀死进程。
一般认为空闲CPU百分比不能低于百分之20。
缓冲的作用是加速数据的写入硬盘,如果用户每执行一次保存,系统就执行一次写操作,当系统本身运载比较大的时候,就回导致系统很难完成,这个时候写入就会很慢,所以先将数据放入到内存的buffers(缓冲区),存到一定量的时候再进行硬盘的写入,这样可以有效的减少硬盘写入次数,从而提高写入速度。
缓存的作用是加速了数据的读取,由于硬盘的读写熟读很慢,所以就将需要经常使用的数据放入cached(缓存区),缓存也是一个在内存中的区域。

9.1.3.进程的查看

查看当前的所有进程有两个方法ps aux(没有-)和ps -le,两个命令结果都是一样。查询命令很简单,不过输出却很多,每列都有意义:
USER:该进程是由哪个用户产生的;
PID进程的ID号;
%CPU:该进程占用CPU资源的百分比
%MEM:该进程占用物理内存的百分比
VSZ:该进程占用虚拟内存的大小(kb)
RSS:该进程占用实际物理内存的大小(kb)
TTY:该进程的运行终端,tty1-tty6是本机的字符界面终端,tty7是本机的图形界面终端,pts/0~2^16是远程登录终端。显示?表示该进程不是在终端上启动的,而是由系统内核启动的,ID号小于1000都是系统内核进程。
STAT:进程状态,一般有R运行;S睡眠;T停止;s包含子进程;+位于后台
START:该进程启动的时间
TIME:该进程占用CPU的运算时间,注意不是系统时间,这个时间个日期时间没有任何关系,这个时间是指占用CPU的运算时间,时间越长,表示该进程占用CPU越多。
COMMAND:产生此进程的进程名字。
查看进程树使用命令pstree,可以看到系统中各个进程的树形关系。可以看到systemd是所有进程的父进程。pstree -p查看每个进程的PID,pstree -u显示进程的所属用户。

9.1.4.杀死进程

使用命令kill -l,可以查看可用的进程信号,进程信号有64个,使用它们的编号或信号名就可以调用它们,进程信号就是同过命令来对进程进行一些处理。比如信号1 SIGHUP作用是让进程平滑重启,也就是重启但不中断,使用命令是kill -HUP+进程号或者kill -1+进程号。就可以平滑重启这个进程。
还有信号9 SIGKILL,作用是强制终止进程。
信号15 SIGTERM,默认选项,杀死一个正常的进程。
信号6 SIGABRT,作用是放弃该进程,一般是进程接收到什么错误信息之后就会接收到该信号,然后错误地中断进程。
有些时候,一种服务会开启多个进程,这个时候如果要强制关闭这个服务就应该杀死该服务所有的进程,使用命令killall+[选项][信号]+进程名,注意信号和kill的一样,不同的是后面一定要写进程名(说服务名更加准确)而不是进程号,选项有-i,会挨个询问是否删除这个进程,-I忽略进程名大小写。
命令pkill和killall基本一致,不同的是多一个-t选项,作用是按照终端号踢出用户。使用命令w看看哪些终端在登录,然后使用命令pkill -9 -t+终端号,将这个终端登录踢下线,这是超级用户的权限。

9.1.5. 修改进程优先级

一个CPU在同一时钟周期内只能运算一个指令,多个进程是通过时间片轮转制度实现,而轮转顺序的先后,则是由优先级来决定的。
命令ps -le和命令top都能看到命令优先级的两列,优先级有如下规则:
PRI(priority),NI(nice),这两个值都是优先级,数值越小优先级越高
普通用户和超级用户都不可以修改PRI的值,但是可以修改NI的值,最终优先级是PRI(新)=PRI(旧)+NI的值。
NI的范围是-20~19, 普通用户的调整范围只有 0~19,只有超级用户才可以改成负值。
修改优先级的命令是nice -n+[数字]+命令,-n,NI值,给命令赋予NI值,该命令只能给新执行的命令赋予NI值,不能修改已经存在的进程的值。如nice -n 5+命令。
如果想要修改已经存在的进程就要使用命令renice [优先级]+PID,就可以直接给某一个进程修改优先级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值