centos进程管理

一 、进程的概念和分类
1.进程的概念
      Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用同一个linux系统;多任务是指在Linux下可以同时执行多个任务,更详细的说,linux采用了分时管理的方法,所有的任务都放在一个队列中,操作系统根据每个任务的优先级为每个任务分配合适的时间片,每个时间片很短,用户根本感觉不到是多个任务在运行,从而使所有的任务共同分享系统资源,因此linux可以在一个任务还未执行完时,暂时挂起此任务,又去执行另一个任务,过一段时间以后再回来处理这个任务,直到这个任务完成,才从任务队列中去除。这就是多任务的概念。
上面说的是单CPU多任务操作系统的情形,在这种环境下,虽然系统可以运行多个任务,但是在某一个时间点,CPU只能执行一个进程,而在多CPU多任务的操作系统下,由于有多个CPU,所以在某个时间点上,可以有多个进程同时运行。
       进程的的基本定义是:在自身的虚拟地址空间运行的一个独立的程序,从操作系统的角度来看,所有在系统上运行的东西,都可以称为一个进程。
       需要注意的是:程序和进程是有区别的,进程虽然有程序产生,但是它并不是程序,程序是一个进程指令的集合,它可以启用一个或多个进程,同时,程序只占用磁盘空间,而不占用系统运行资源,而进程仅仅占用系统内存空间,是动态的、可变的,关闭进程,占用的内存资源随之释放。
       例如,用户在linux上打开一个文件、就会产生一个打开文件的进程,关闭文件,进程也随机关闭。如果在系统上启动一个服务,例如启动tomcat服务,就会产生一个对应的java的进程。而如果启动apache服务,就会产生多个httpd进程。

2.进程的分类
按照进程的功能和运行的程序分类,进程可划分为两大类:
 系统进程:可以执行内存资源分配和进程切换等管理工作;而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。
 用户进程:通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。
针对用户进程,又可以分为交互进程、批处理进程和守护进程三类。
 交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。
 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。
 守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。

3.进程的属性
(1)进程的几种状态
进程在启动后,不一定马上开始运行,因而进程存在很多种状态。
 可运行状态:处于这种状态的进程,要么正在运行、要么正准备运行。
 可中断的等待状态:这类进程处于阻塞状态,一旦达到某种条件,就会变为运行态。同时该状态的进程也会由于接收到信号而被提前唤醒进入到运行态。
 不中断的等待状态:与“可中断的等待状态”含义基本类似,唯一不同的是处于这个状态的进程对信号不做响应。
 僵死状态:也就是僵死进程,每个进程在结束后都会处于僵死状态,等待父进程调用进而释放资源,处于该状态的进程已经结束,但是它的父进程还没有释放其系统资源。
 暂停状态:表明此时的进程暂时停止,来接收某种特殊处理,
(2)进程之间的关系
在linux系统中,进程ID(用PID表示)是区分不同进程的唯一标识,它们的大小是有限制的,最大ID为32768,用UID和GID分别表示启动这个进程的用户和用户组。所有的进程都是PID为1的init进程的后代,内核在系统启动的最后阶段启动init进程,因而,这个进程是linux下所有进程的父进程,用PPID表示父进程。
下面是通过ps命令输出的sendmail进程信息:
[root@localhost ~]# ps -ef|grep  sendmail
UID       PID     PPID  C   STIME  TTY        TIME               CMD
root      3614     1    0   Oct23   ?        00:00:00  sendmail: accepting connections
相对于父进程,就存在子进程,一般每个进程都必须有一个父进程,父进程与子进程之间是管理与被管理的关系,当父进程停止时,子进程也随之消失,但是子进程关闭,父进程不一定终止。
如果父进程在子进程退出之前就退出,那么所有子进程就变成的一个孤儿进程,如果没有相应的处理机制的话,这些孤儿进程就会一直处于僵死状态,资源无法释放,此时解决的办法是在启动的进程内找一个进程作为这些孤儿进程的父进程,或者直接让init进程作为它们的父进程,进而释放孤儿进程占用的资源。

二、 进程的监控与管理
         Linux下,监控和管理进程的命令有很多,下面我们以ps、top、pstree、lsof四个最常用的指令介绍如果有效的监控和管理linux下的各种进程。

2.1 利用ps命令监控系统进程
         image.png

      其中,UID是用户的ID标识号,PID是进程的标识号,PPID表示父进程,STIME表示进程的启动时间,TTY表示进程所属的终端控制台,TIME表示进程启动后累计使用的CPU总时间,CMD表示正在执行的命令。
         从中可以清楚的看出,父进程和子进程的对应关系, PPID为26037的所有进程均为子进程,而PID为26037的进程是所有子进程的父进程,子进程由nobody用户启动,而父进程由root用户启动,父进程对应的PPID为1,即父进程同时为init进程的子进程。

利用pstree监控系统进程
 pstree命令以树形结构显示程序和进程之间的关系,使用格式如下:
 pstree [-acnpu] [<PID>/<user>]
 选项含义如下:
 -a  显示启动每个进程对应的完整指令,包含启动进程的路径、参数等等。
 -c  不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。
 -n  根据进程PID号来排序输出,默认是以程序名称排序输出的。
 -p  显示进程的PID。
 -u  显示进程对应的用户名称。
 PID:即进程对应的PID号,或者叫进程识别号。
 user:系统用户名。
         pstree清楚的显示了程序和进程之间的关系,如果不指定进程的PID号,或者不指定用户名称,则将以init进程为根进程,显示系统的所有程序和进程信息,若指定用户或PID,则将以用户或PID为根进程,显示用户或PID对应的所有程序和进程。

image.png

   利用top监控系统进程
         top命令是监控系统进程必不可少的工具,与ps命令相比,top命令动态、实时的显示进程状态,而ps只能显示进程某一时刻的信息,同时,top命令提供了一个交互界面,用户可以根据需要,人性化的定制自己的输出,更清楚的了解进程的实时状态。

image.png

栏位信息简介 PID (Process Id):任务的进程ID PPID (Parent Process Pid):父任务的进程ID RUSER (Real User Name):任务的所有者真实名称 UID (User Id):任务所有者ID USER (User Name):任务所有者名称 GROUP (Group Name):任务所有者群组名 TTY (Controlling Tty):终端 PR (Priority):优先级 %CPU (CPU usage):CPU使用率 %MEM (Memory usage (RES)):内存使用率 S (Process Status):进程状态 TIME+ (CPU Time, hundredths):CPU时间,精确到秒

系统监控工具htop

image.png

glances系统监控工具

image.png

 常用选项:

-b: 以Byte为单位显示网卡数据速率

-d: 关闭磁盘I/O模块

-f /path/to/somefile: 设定输入文件位置

-o {HTML|CSV}:输出格式

-m: 禁用mount模块

-n: 禁用网络模块

-t #: 延迟时间间隔

-1:每个CPU的相关数据单独显示

系统监控工具
dstat命令:

系统资源统计 

dstat [-afv] [options..] [delay [count]]

-c: 显示cpu相关信息

-C #,#,…,total

-d: 显示disk相关信息

-D total,sda,sdb,…

-g:显示page相关统计数据

-m: 显示memory相关统计数据

-n: 显示network相关统计数据

-p: 显示process相关统计数据

-r: 显示io请求相关的统计数据

-s: 显示swapped相关的统计数据

image.png

–tcp 

–udp 

–unix 

–raw 

–socket 

–ipc 

–top-cpu:显示最占用CPU的进程 

–top-io: 显示最占用io的进程 

–top-mem: 显示最占用内存的进程 

–top-latency: 显示延迟最大的进程

进程管理工具
 kill命令:

向进程发送控制信号,以实现对进程管理

显示当前系统可用信号: kill -l

常用信号:man 7 signal

1) SIGHUP: 无须关闭进程而让其重读配置文件

2) SIGINT: 中止正在运行的进程;相当于Ctrl+c

9) SIGKILL: 杀死正在运行的进程

15) SIGTERM:终止正在运行的进程

18) SIGCONT:继续运行

19) SIGSTOP:后台休眠

指定信号的方法:

(1) 信号的数字标识;1, 2, 9

(2) 信号完整名称;SIGHUP

(3) 信号的简写名称;HUP

进程管理工具

按PID:kill [-SIGNAL]  pid … 

按名称:killall [-SIGNAL]  comm… 

按模式:pkill [options] pattern

-SIGNAL -u uid: effective user,生效者

-U uid: real user,真正发起运行命令者

-t terminal: 与指定终端相关的进程

-l: 显示进程名

-a: 显示完整格式的进程名

-P pid: 显示父进程为此处指定的进程的进程列表

原创文章,作者:xiaoqiang512,如若转载,请注明出处:http://www.178linux.com/47220

赞 (0)
xiaoqiang512xiaoqiang512
上一篇 2016-09-19 13:47
下一篇 2016-09-19 13:47

相关推荐

  • 马哥教育千万级PV实战大揭秘

    又到了激动人心的架构实战项目实践时间,马哥教育面授班的学员都很期待这一刻的到来,因为经过此次洗礼,能让自己成长更多! 上周二,马哥教育张Sir带领18期面授班的学员们做千万PV级别的电商架构实战项目!新增的多台R710企业级服务器设备,轻松搭建大数据、云计算等高端实验环境,让实战,更加真实!相信经过这场实战的洗礼,小伙伴们架构技能会有更大提升! 【张Sir生…

    2016-06-30
  • PHP的类自动加载机制

    在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来。这个在小规模开发的时候,没什么大问题。但在大型的开发项目中,这么做会产生大量的require或者include方法调用,这样不因降低效率,而且使得代码难以维护,况且require_once的代价很大。 在PHP5之前,各个…

    Linux干货 2015-04-10
  • 第一周博客作业

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    Linux干货 2018-03-13
  • 马哥linux 0728作业

    1,软链接和硬链接的区别 硬链接有以下特性 1)文件有相同的 inode 及 data block; 2)只能对已存在的文件进行创建; 3)不能交叉文件系统进行硬链接的创建; 4)不能对目录进行创建,只可对文件创建; 5)删除一个硬链接文件并不影响其他有相同 inode 号的文件。 而软链接有一下特性 1)软链接有自己的文件属性及权限等; 2)可对不存在的文…

    Linux干货 2016-08-04
  • linux 基础命令总结——文件类命令

    <span style="font-size: 18px;">linux 基础命令总结——文件类命令</span> #wmd-preview h1  {    color: #0077bb; /* 将标题改为蓝色 */} linux 基础命令总结——文件类命令 命令总结 文件类命令 l…

    Linux干货 2016-06-26
  • N21天天第十四周课程练习

    系统的INPUT和OUTPUT默认策略为DROP; #把默认策略设置为DROP [root@localhost ~]# iptables -P INPUT DROP [root@localhost ~]# iptables -P OUTPUT DROP 1、限…

    Linux干货 2016-12-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 14:58

    写的不错,图文并茂,并且对各个命令也结果意义也定义的很清楚。