進程管理工具的使用


對於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

其實很簡單,差不多解釋完成!!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章