LINUX进程管理

墙上芦苇,头重脚轻根底浅;山间竹笋,嘴尖皮厚腹中空。——解缙

Linux下的进程管理主要是用于查看进程的健康状态,以便及时发现和处理问题,从而保护我们的系统。

Linux的进程管理分为三个过程:
1. 查看进程
2. 杀死进程
3. 修改进程优先级

查看进程

ps命令

ps命令用于查看用户当前进程,他有两个参数:aux-le

aux可看进程的内存占比率,是我们常用的参数,-le可查看进程的优先级。

这里写图片描述

图中的各项各是代表什么呢?

USER该进程由哪个用户产生(可见大部分进程为root产生)
PID进程ID号(系统不看文件名和用户名,只识别ID号,/sbin/init为第一个进程,为所有进程之父进程,ID号永远为1)
%CPU占用CPU资源百分比,越高越耗费资源
%MEM占用物理内存百分比,越高越耗费资源
VSZ占用虚拟内存大小,单位KB
RSS占用实际物理内存大小,单位KB
TTY该进程在哪个终端运行的,tty1-tty7代表本地控制台终端,tty-tty6为本地的字符界面终端,tty7是图形终端,tty7为图形界面终端,pts/0-255代表虚拟终端(远程登录)。“?”表示这些进程不是由用户通过终端启动,由内核直接启动,为系统进程。
STAT进程状态(R:运行,S:睡眠,T:停止,s:包含子进程,+:位于后台,Z:僵尸进程,N:优先级较低进程,<:优先级较高进程),绝大多数进程在休眠,PS aux在运行,说明PS命令和ls命令一样回车就会中止,但是PS命令只是正好在抓进程而已,抓到自己在运行,所以进程耗费资源少。
START该进程的启动时间,大于1000用月表示
TIME该进程占用CPU的运算时间,注意不是系统时间,越长越耗费资源
COMMAND产生此进程的命令名

PS命令主要用于查看当前哪些进程在运行,方便管理,所以看好进程名。

pstree命令

pstree命令也是用来查看进程,不过查看的方式不同,它有两个参数,-p可以查看进程ID号,-u查看进程所属的用户。

这里写图片描述

图中可看见init进程为所有进程的父进程,这里最好每次远程登录终端都正常退出,因为我们只有255个远程服务,虽然多,但是············。

top命令

这里写图片描述

执行top命令后我们可以看到他是不断在刷新的,默认每3秒刷新一次进程的状态,和windows下的任务管理器一样,但是它是每秒刷新一次,top命令是判断进程健康状态最好的。

说一下他的参数:

-d指定top命令每隔几秒更新,默认为三秒
-n指定top命令执行的次数,一般和“-b”选项合用,(可使用将所有进程状态输出到一个文本中)ex: top -b -n 1(刷新几次) > top.log
-b使用批处理模式输出,一般和“-n”选项合用

可以发现,在top命令交互模式中是有可执行命令的:

?/h显示交互模式的帮助
p以CPU使用率排序,默认就是此项
M以内存的使用率排序
N以PID排序,从大到小
q退出top

top下的前三行内容比较重要,这里解释一下:

内容说明
21:02:34系统当前时间
up 3 days,1:05系统的运行时间,本机已经运行1天13小时32分钟
2 users当前登录了两个用户
load average: 0.00,0.00,,000系统在之前1分钟,5分钟,15分钟的平均负载(CPU时间内CPU占比平均值)。一般认为小于1小时,负载较小,大于1小时,系统已经超出负荷(经验值:目前按照CPU核数判断,双核为2,四核为4)

系统运行的时间不要过长,我们要让我们的服务器定期的重启,让他归零,因为服务器运行时间过长会产生很多垃圾文件,我们要保证系统不出故障,必须定期重启,这也就是网络游戏为什么要定期维护的原因。一般游戏是一周维护一次。

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

这里cached是指缓存,可以加速数据的读取,内存从cached读取数据的速度比从硬盘快,而buffer是缓冲,他可以加速数据的写入,但是它的数据要先保存在内存中,等有空才会一起从内存写入硬盘,所以有丢失数据的风险。

swap分区可以手动添加。

杀死进程

这里要注意了,杀死进程可不是闹着玩的,不能盲目的杀死进程,在杀进程之前必须要看是什么进程,然后能否正常关闭,万不得已不要直接杀死进程。

在Windows下我们使用任务管理器来查杀进程,而在Linux下我们使用相关的命令来杀死进程。

kill:-l,查看可用进程信号,杀死单一进程;
pkill:杀死多个进程。
killall:杀死多个进程。

这里写图片描述

几个重要信号名称以及说明:
这里写图片描述

其中:
代号1:平滑重启,将应用程序重新启动,但是不终止已经登录用户;
ex:kill -1/-HUP ID,不跟进程名;

代号9:强制杀死(慎用);
ex:kill -9 PID;

killall 【选项】【信号】【进程名】 ,按照进程名杀死进程 -i:交互式,询问是否要杀死某个进程 -I:忽略进程名大小写

pkill:和上面一样,-t:按照终端号踢出用户,先w查看终端号,用root命令,pkill -9 -t pts/0.(可举例),w:查看当前登录用户。

修改进程优先级

   Linux操作系统是一个多用户、多任务的操作系统,linux系统中同时运行着非常多的进程。但是CPU在同一个时钟周期内只能运算一个指令。CPU处理每个进程的方式是公平的,他给时间分片,给每个进程一个时间片来执行,当时间用完后不管有没有完成又去处理下一个进程,所以,每个进程都由CPU轮流处理,直到处理完毕。

 而我们的电脑CPU又分几核,则有几个CPU来共同处理一个进程,因此进程的优先级就决定了执行的快慢,而CPU的运算速度一般是2GHZ。这里指一秒钟计算2G次,64位系统每次运算8个字节,这里可算出CPU每秒运算多少字节。

优先级:more 命令分页显示 ps -le
PRI代表Priority,NI代表Nice。这两个值都是优先级,数字越小代表该进程优先级越高。
生效的是PRI,但是这个不能直接修改,只能修改NI,但是系统最终优先级是两者相加。

这里写图片描述

nice命令可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值 -n:NI值:给命令赋予NI值
ex:nice -n -5 ls

renice命令是修改已经存在进程的NI值的命令
renice -10 2125(PID)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值