Linux Process Management And PerformanceMonitoring概述..................................................................... - 1 - 第一章进程管理基础概念................................................... - 1 -1.1 什么是进程....................................................... - 1 -1.2 进程的属性....................................................... - 1 -1.2.1 PID:进程的ID号........................................... - 1 -1.2.2 PPID:父进程的PID ......................................... - 1 -1.2.3 UID和EUID:真实和有效的用户ID ............................ - 1 -1.2.4 GID和EGID:真实和有效的组ID .............................. - 1 -1.2.5 谦让度和优先级............................................. - 2 -1.3 进程状态......................................................... - 2 -1.4 进程查看及管理工具............................................... - 2 - 第二章进程管理类工具..................................................... - 3 -2.1 监视进程:ps命令................................................ - 3 -2.1.1 ps aux 查看进程的所有信息.................................. - 3 -1.2.2 ps lax显示进程的PPID和谦让度NI ........................... - 4 -1.2.3 ps –ef显示进程的PPID ..................................... - 4 -2.2 即时跟踪进程信息:top命令....................................... - 5 -2.2.1 top即时跟踪进程信息....................................... - 6 -2.3 像进程发生信号:kill命令........................................ - 7 -2.3.1 kill -9强制扼杀进程....................................... - 7 -2.4 调整进程的谦让度:nice和renice .................................. - 7 -2.4.1 nice命令.................................................. - 7 -2.4.2 renice命令................................................ - 8 - 第三章内存监控类工具..................................................... - 9 -3.1 vmstat命令...................................................... - 9 -3.1.1 vmstat命令内容详解........................................ - 9 -3.1.2 pmap命令:显示指定PID进程所占用的内存地址空间的使用情况 . - 10 - 第四章系统监控类工具.................................................... - 11 -4.1 pcp工具........................................................ - 11 -4.1.1 pcp安装及命令工具的使用.................................. - 11 -4.1.2 pcp启动.................................................. - 11 -4.2 dstat命令...................................................... - 11 -4.3 glances工具.................................................... - 14 -无论是管理员和普通用户,监控系统进程的运行情况,并适当终止一些时空的进程是每天的例行事务(PS或许对windows的任务管理器非常熟悉),系统管理员可能还要兼顾到任务的重要的程度,并相应调整进程的优先策略。
监控系统的各方面的性能,保障各类服务的有序运行,是运维工作的重要组成部分,本篇主要介绍常用的系统监控命令和相关参数的说明。
具体包含以下几个部分:1.进程管理基础2.进程管理类工具(ps、pstree、top、nice、renice、w、jobs、kill)3.内存监控类工具(vmstat、pmap)4.系统监控类工具(glances、dstat)第一章进程管理基础概念1.1什么是进程进程是操作台的一种抽象概念,用来表示正在运行的程序。
Liunx是一种多用户、多进程的操作系统,在Liunx的内核中,维护着一张表,这张表记录了当前系统中运行的所有进程的各种信息。
Liunx内核会自动完成对进程的控制和调度。
内核中的一些重要进程信息包括有:⏹进程的内存地址⏹进程的当前状态⏹进程正在使用的资源⏹进程的优先级(谦让度)⏹进程的属主1.2 进程的属性一个进程包含有多个属性参数,这些参数决定了进程被处理后的顺序、能访问的资源等,这些信息对于系统管理员和程序管理员都是非常重要的。
1.2.1 PID:进程的ID号Linux系统的用户都有一个唯一与其相对应的组ID(GID)和用户ID(UID)用来标识其身份的ID号;同样的,进程也有一个与其对应的ID号,被称作为PID。
Liunx不仅自己使用PID来确定进程,还要求用户在管理进程时要提供相应的ID号。
1.2.2 PPID:父进程的PID在Liunx中,所有的进程都必须由另一个进程创建(除了在系统引导时,有内核自主创建并安装的进程)。
当一个进程被创建时,创建它的那个进程被称作父进程,而这个进程则相应地被称作为子进程。
子进程使用PPID指出谁是其父进程。
1.2.3 UID和EUID:真实和有效的用户ID只有进程的创建者和root用户才有权利对改进程进行操作。
于是,记录一个进程的创建者(属主)就显得非常重要。
进程的UID就是其创建者的用户ID 号,用于标识进程的属主。
Liunx还为进程保存了一个“有效用户ID号”,被称作为EUID。
这个特殊的UID号用来确定进程对某些资源和文件的访问权限。
1.2.4 GID和EGID:真实和有效的组ID类似地,进程的GID是其窗帘这所属组的ID号。
对应于EUID,进程同样拥有一个EUID号,可以通过setgid程序来设置。
当进程需要创建一个新文件时时候,这个文件将采用该进程的GID。
1.2.5 谦让度和优先级进程的的优先级决定决定了其受到CUP“优待”的程度,优先级别高的进程能够更早地被处理或执行,且获得更多的处理的时间。
Liunx内核会综合考虑一个进程的各种因素来决定其优先级别,这些因素包含了进程已经消耗的CPU 时间、进程已经等待的时间等。
用户可以通过设置进程的“谦让度”来影响内核的想法。
“谦让度”和“优先级”刚好是一对相反的概念,高“谦让度”意味着低“优先级”,反之。
表1-1 进程优先级参照表1.3 进程状态运行态:running,进程正在运行中就绪态:ready,可以运行但尚未被运行睡眠态:Sleeping可中断睡眠:interruptible,调度到CPU上可立即运行不可中断睡眠:uinterruptible,通常是指被IO阻塞的进程,等待IO满足之前无法继续运行僵死态:zombie,找不到归属,父进程没有回收改进程停止态:stopped,在听·暂停于内存中,不可被调度并运行1.4 进程查看及管理工具在Liunx运维中常用到的进程查看和管理的工具主要有:pstree、ps、pidof、top、htop、glance、vmstat、dstat、kill、pkill、jobs、bg、fg、nohup等。
第二章进程管理类工具2.1 监视进程:ps命令ps命令即显示系统当前进程的运行情况,实际是将/proc/目录下的各个进程的相关信息转换为我们易读的模式展示出来。
表2-1 ps命令常用选项与参数表常用的组合方式:ps –ef 以完整的信息显示所有进程的信息ps auxps axo2.1.1 ps aux查看进程的所有信息图2-1 ps uaxPs aux显示出来的参数的意义,见表2-2表2-2 ps aux命令产生进程信息的各字段含义表1.2.2 ps lax 显示进程的PPID 和谦让度NIps 的另一组选项lax 可以提供父进程ID (PPID )和谦让度(NI )。
ps lax 命令不会显示进程属主的用户名,因此可以提供更快的运行速度。
Ps lax 命令的输出,如图2-2所示。
1.2.3 ps –ef 显示进程的PPIDps –ef 显示出来的结果代表的意义,如图2-3所示和表2-3所示2.2 即时跟踪进程信息:top命令top命令具有即时跟踪进程信息的功能。
ps命令可以一次性的给出当前系统中进程信息的快照,但这样的信息往往缺乏时效性。
当管理员需要实时监视进程运行情况时,就必须不停的执行ps命令——这样显然是缺乏效率的。
为此,Linux提供了top命令用于即时跟踪当前系统的进程情况。