对于linux系统来说,进程的管理是重要的一环。如果对系统进程不能准确的管理,只能说是一个识别的管理者。

1、初识系统进程管理的工具家族

linux进程查看及管理的工具;pstree ps pgrep top htop glance  vmstat dstat kill pkil 对于工具有很多。但是并不说每个都要去掌握。而且有些工具的功能相近,或者说有些功能是由重叠的。

2、接下来对上面进程管理软件简写简单了解。首先了解的命令是pstree。其实对于这条命令没有过多的使用方法。很简单如下:

pstree 

Usage: pstree [ -a ] [ -c ] [ -h | -H PID ] [ -l ] [ -n ] [ -p ] [ -u ]

              [ -A | -G | -U ] [ PID | USER ]

主要用来查看进程数的。对于使用的参数很简单,没有太复杂的使用难度。

接下来说明ps的使用介绍,其实ps命令也很简单。对于 ps - report a snapshot of the current processes.命令,翻译过来的意思就是显示当前进程的信息情况,以镜像的方式。使用方式也很简单。如下:

ps

常用组合:aux

u:以用户为中心组织进程状态信息显示;

a:与终端无关的进程;

x:与终端有关的进程; (线程,就是轻量级进程;)

实际操作如下:

[root@localhost ~]# ps aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root          1  0.0  0.0  19364  1532 ?        Ss   Aug26   0:01 /sbin/init

root          2  0.0  0.0      0     0 ?        S    Aug26   0:00 [kthreadd]

对其上面一些任务栏进行简单解释说明

VSZ:vittual memory size 虚拟内存集

RSS:resident size,常驻内存集

STAT:进程状态有一下几个

R:runing

S:interuptable sleeping 可中断睡眠

D:uninteruptable sleeping 不可中断睡眠

T:stopped

Z: zombie僵尸进程

+:前台进程

N:低优先级进程

l:多线程进程

<:高优先级进程

此外还有好几中常用组合:如下

 常用组合:-ef

-e:显示所有进程;相当于ax

-f:显示完整格式程序信息

[root@www tmp]# ps -ef

UID         PID   PPID  C STIME TTY          TIME CMD

root          1      0  0 Aug26 ?        00:00:01 /sbin/init

root          2      0  0 Aug26 ?        00:00:00 [kthreadd]常用组合;-eFH

-H:以进程层级显示进程数的

-F:显示更多的程序信息

[root@www tmp]# ps -eHF

UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD

root         2      0  0     0     0   1Aug26 ?        00:00:00 [kthreadd]

root         3      2  0     0     0   0 Aug26 ?        00:00:00   [migration/0]

其他的命令参数使用的很少。Ps命令其实使用并不是很平凡。至于pgrep和pkill命令使用就更少,这里就不就行过多演示说明:

 

3、接下来主要解释使用比较多的命令top htop glance  vmstat dstat kill

 

3.1、首先解释top命令

对于top - display Linux tasks命令来说,它翻译过来就是显示linux任务进程。其实它所常使用的参数很少。下面列举可能会使用到的参数:如下

选项:

-d # 指定刷新时间间隔,默认为3秒

-b:一批次方式;

-n # 显示多少批次;

接下来去演示下对top的使用:

    37 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kblockd/3                           

[root@www tmp]# top 

top - 00:32:03 up  1:33,  1 user,  load average: 0.00, 0.00, 0.00

Tasks: 179 total,   1 running, 178 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.2%us,  0.3%sy,  0.0%ni, 99.2%id,  0.2%wa,  0.0%hi,  0.1%si,  0.0%st

Mem:   1906492k total,   206724k used,  1699768k free,    19564k buffers

Swap:  2097148k total,        0k used,  2097148k free,    67288k cached

 

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                            

     1 root      20   0 19364 1532 1224 S  0.0  0.1   0:01.20 init                                

     2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd                            

     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0   

对于上面的一些显示属性,进行简但的说面。  上面显示运行的时间,登录的用户数,负载均衡值,当前任务数,其中正在运行的一个,178个处于睡眠状态,停止的0个,僵尸进程0个,同时还显示cpu,内存及其swap的使用情况等。   

 

3、2其实对于top命令而言,它已经是老贵族了,已经有新贵族替代它了。功能更加强劲,那就是htop - interactive process viewer。在centOS6上,默认是没有安装的。需要自己去手动安装。这里就已经安装,直接对其进行简单说明演示。它的中文意思就是进程交互式显示:对其一些常用下进行简单说明。

选项:

-d #: 指定延迟时间

-u Username:仅显示指定用户的进程;

-s COLOMN: 已指定字段进行排序

在命令行直接输入htop命令就会显示如下界面

wKiom1Xrp7OTBK7hAAJxqydW5HI077.jpg

对与htop命令的使用其实很简单,如果不会你可以按F1键,它会显示帮助细心。如下

wKioL1XrqebyRwdQAAKu3WWYvcI766.jpg

对其每个使用方法都已经很完全的说明解释,我就不过多说明。

 

33对于glances - A cross-platform curses-based monitoring tool来说,其实也是进程看管理工具。功能和top其实也很相似在centOS6上,默认是没有安装的。需要自己去手动安装。这里就已经安装,直接对其进行简单说明演示。它的中文意思就是一个跨平台监控工具:对其一些常用下进行简单说明。

常用选项:

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

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

-f:/path/to/somefile:设定输入文件为准;

-m:禁用mount模块

-n:禁用网络模块

-t #:延迟时间间隔

-l:每个cpu的相关数据单独显示

在命令行直接输入glances命令就会显示如下界面

wKioL1XrqfSDEmKJAAO6YSkuWnY019.jpg

对于上面一些属性我不过多解释,我想大家应该能够理解。如果大家不懂,大家可以按H键,进入去看。

wKiom1Xrp9XjdUzxAAMAKybMlKk835.jpg

Glances的选项参数全部都显示出来。

 

3、4接下来对 vmstat - Report virtual memory statistics及其 dstat - versatile tool for generating system resource statistics进行简单说明。对其vmstat中文翻译就是报告虚拟内存的使用情况,而dstat的中文翻译是多用途工具生成系统资源统计数据

[root@www tmp]# vmstat 

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 1  0      0 1686136  23388  76824    0    0     3     2   10    8  0  0 100  0  0

对于它其他的使用参数,很简单我就不过多说明。

dstat命令:

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

-c: 显示cpu相关信息

-C:显示单个cpu的

-d:显示硬盘的读写速度

-D:单独显示单块硬盘速率

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

-m:显示内存相关统计数据

-n:显示网络相关统计数据;

-p:显示进程相关统计数据;

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

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

[root@www tmp]# dstat 

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--

usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 

  0   0 100   0   0   0|  12k 6170B|   0     0 |   0     0 |  42    33 

  0   0 100   0   0   0|   0     0 |  60B  826B|   0     0 |  29    29 

  0   0 100   0   0   0|   0     0 | 180B  430B|   0     0 |  51    32 

3.5接下来说最后一个命令kill名。对于kill - terminate a process,我个人的理解是终结一个进程。对于这个命令来说,使用来说很简单。但是却很有效,虽然是老贵族,但是却依旧雄风用在。接下对其进行说明下:

[root@www tmp]# kill -l

 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL10) SIGUSR1

11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM

16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP

21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU25) SIGXFSZ

26) SIGVTALRM27) SIGPROF28) SIGWINCH29) SIGIO30) SIGPWR

31) SIGSYS34) SIGRTMIN35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+3

38) SIGRTMIN+439) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8

43) SIGRTMIN+944) SIGRTMIN+1045) SIGRTMIN+1146) SIGRTMIN+1247) SIGRTMIN+13

48) SIGRTMIN+1449) SIGRTMIN+1550) SIGRTMAX-1451) SIGRTMAX-1352) SIGRTMAX-12

53) SIGRTMAX-1154) SIGRTMAX-1055) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-7

58) SIGRTMAX-659) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2

63) SIGRTMAX-164) SIGRTMAX

接下来我对其中一些常出现的信号进行说明:

常用信号:

1)SIGHUP:让进程在不关闭的前提下,重读配置文件

2)SIGINT:终止正在运行的信号,相当于CTRL+c

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

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

18)SIGCONT:手动调用信号

19)SIGSTOP

对于kill命令的使用很简单直接kill加上信号进程即可。

[root@www tmp]# kill 3553

其实很简单,差不多解释完成!!