回到首页| 网络安全 名人故事 申请书 | 名人名言 财富榜 关于我们

当前位置:名人故事传 > 互联网 > Linux服务器 > > 正文

Linux进程管理详解

04-16  Linux服务器     来源: 未知  

何谓进程?进程,就是正在执行的一个程序或命令,每一个进程都是一个运行实体,有自己的地址空间,并占用一定的系统资源。简而言之,进程就是运行中的程序。在Linux中,诸如ls等命令都是进程,只不过某些命令进程在运行完后立即关闭了。而像apache等常驻内存服务也会产生进程,例如,一个用户访问一个apache下的站点,必定会产生一个进程。Linux中有各种各样的进程,尤其是在服务器中,我们需要实时了解系统中所有进程的状态,因此本篇文章将针对进程的管理进行详细地讲解。

在具体讲解进程管理前,我们先讨论一下进程管理的作用。总的来说,进程管理具有如下三个作用:

判断服务器健康状态:这是进程管理中最主要的作用,通过分析进程的状态(内存、CPU占有率等)判断服务器的负载和安全状态。

查看系统中的所有进程:这是进程管理的基础,通过查看系统中的所有进程状态才能决定对进程作出什么样的管理。杀死进程:进程管理中的辅助手段,杀死进程只是迫不得已的做法,一般情况下,进程都有正常的退出方法,只有进程不能正常结束时,才使用杀死进程的方法。

在了解了进程管理的作用后,我们来看进程查看命令的使用。进程查看命令主要有ps、pstree、top三个命令,下面我们逐一讲解。

ps

命令选项:

-a :显示一个终端所有的进程-u:显示进程的归属用户和内存占用情况-x:显示没有控制终端的进程-l:长格式显示更详细的信息-e:显示所有进程

命令组合:总的来说,ps命令具有两种组合格式,一种是ps aux,一种是ps -le。

ps aux:查看系统中的所有进程,使用BSD操作系统格式

注:ps aux和ps -aux命令有区别,在ubuntu中ps -aux不会报错,而在centos中,ps -aux会提示警告信息。使用man ps可以查看文档描述,但是在使用过程中不必纠结于二者的区别。

ps -le:查看系统中的所有进程,使用Linux标准格式

在实际使用过程中,我们没有必要对ps命令输出的所有进程都认识,应该关注的是每一列输出信息代表的含义是什么。下面以ps aux为例,讲解对应列的含义:

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的运算时间。COMMAND:进程名

(注:PID等于1的进程 /sbin/init 是系统的启动进程,是系统中所有进程的父进程)

2.pstree命令产看进程树

命令选项:

-p:显示进程的PID-u:显示进程的所属用户

直接使用pstree命令,输出的是系统的进程树,其中相同名称的进程使用数字*进程名的形式输出,使用pstree -p命令可以将不同PID的进程展开:

3.top命令查看进程状态

命令选项:

-d 秒数:指定top命令每隔几秒更新,默认是3秒。-b:使用批处理模式输出,一般和-n合用。-n 次数:指定top命令执行的次数。

top命令交互模式下的命令:

?或h:显示交互模式的帮助文档。p:以CPU使用率排序,默认方式。M:以内存使用率排序。 N:以PID排序q:退出top命令交互模式

一般的,在终端输入top命令即进入了top交互模式:

此时可以键入交互模式下的命令对输出进行不同的排序。在top命令下,我们重点关注最上面五行系统信息:

11:31:20 :系统当前时间,默认每3秒更新。up 113days,16:20 :系统已运行113天16个小时20分钟。3 users:当前登录了3个用户。load average:0.00,0.00,0.00 :系统在之前1分钟,5分钟,15分钟的平均负载,一般认为对于每一个CPU核心,该数值小于1时系统负载较小,大于1时系统负载较大。Tasks:112total :系统中的进程总数。2 running:正在运行的进程数。110 sleeping:睡眠进程数。0 stopped:正在停止的进程。0 zombie:僵尸进程。Cpu(s):0.3%us :用户模式占用的cpu百分比。0.3%sy:系统模式占用的cpu百分比。0.0%sy:改变过优先级的用户进程占用百分比。99.3%id:空闲cpu的百分比。0.0%wa:等待输入/输出的进程占用cpu百分比。0.0%hi:硬中断请求服务占用cpu百分比。0.0%si:软中断请求服务占用cpu百分比。0.0%st:虚拟时间百分比。第四行为物理内存的信息,第五行为交换分区的信息,单位为kb,注意buffers是用作缓冲的内存大小,cached是用作缓存的内存大小。

4.kill命令终止进程

kill -l(字母l):查看所有信号。

其中,重点关注kill -1(数字1)和kill -9。kill -1用于重启进程(而不是杀死),不影响现有进程的使用,一般在修改某种服务的配置文件之后使用该命令;kill -9用于强制终止进程,基本格式为 kill [数字]进程PID。

killall命令:基本格式为killall [选项][信号]进程名。killall的选项有-i和-I,-i用于交互,询问是否杀死某个进程,-I用于忽略进程名的大小写。pkill命令:基本格式为pkil [选项][信号]进程名 。选项-t 终端号 用于按照终端号踢出用户。

首先使用w命令查看当前用户,可以见到共有四个远程用户终端,当前正在使用的终端为pts/4,因为其正在使用w命令。接着用pkill命令踢出pts/0,再次用w命令查看,可见此时pts/0用户已被踢出。

5.优先级修改nice命令:基本格式为nice -n 数值 进程名。在前面ps -le命令中,表示优先级的列有PRI(priority)和NI(nice),真正的优先级由PRI决定,数值越小优先级越高。用户只能修改NI的值,修改后的PRI=原PRI+NI。下图为修改apache服务进程的优先级示例。由于优先级对日常使用无很大影响,此处不加赘述,有兴趣的可以自行查阅相关资料。

互联网 网络安全 申请书 创业资讯 创业故事明朝十六帝故事
© 2012-2022 名人故事传网版权所有 关于我们 | 版权声明 | 网站协议 | 友情申请 | 免责声明 | 网站地图 | 联系我们 | 广告服务