Linux進程管理相關命令詳解

一、top

     top命令用於顯示系統當前的進程和其他狀況;top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。如果再前臺執行該命令,它將獨佔前臺,直到用戶終止該程序爲止。

wKiom1Xn04qT4ScEAAZpyJk-rCY343.jpg

其中1-5行爲統計信息區,剩餘行爲進程信息區;
1.統計信息區
1)第1行爲任務隊列信息(與uptime命令運行結果相同)
字段含義:當前時間     系統啓動持續時間   當前登陸用戶數    系統負載,即任務隊列的平均長度備註:格式爲"日期,時:分"  三個數值分別爲1,5和15分鐘前到現在的均值
2)第2行爲進程信息
字段含義: 進程總數    正在運行的進程數   睡眠的進程數   已停止的進程數  僵死進程數
3)第3行爲CPU信息
字段含義:us----用戶空間佔用CPU百分比;
                    sy----內核空間佔用CPU百分比;
                    ni----用戶進程空間內改變過優先級的進程佔用CPU百分比
                    id----空閒CPU百分比
                    wa--等待io完成的CPU時間百分比
                    hi----硬件中斷
                    si----軟中斷(模式切換)

                    st----被偷走的cpu時間比例
4)第4行爲內存信息
字段含義:total----物理內存總量
                    used----使用的物理內存總量
                    free-----空閒內存總量
                    buffers--用作內核緩存的內存量
5)第5行爲交換區swap的信息
字段含義:total----交換分區總量
                    used---已使用的交換區總量
                    free----空閒交換區總量
                   cached--緩衝的交換去總量


2.進程信息區
進程信息區詳細列出了各進程的詳細信息,其中每行代表一個進程;每列的含義如下:
列信息
信息內容:PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
字段含義:  PID----進程id
                    USER--進程所有者的用戶名
                    PR-----進程的優先級
                    NI------nice值,負值表示更高的優先級,正值表示低優先級
                    VIRT---進程使用的虛擬內存總量,單位爲kb。
                    RES----進程使用的、未被換出的物理內存的大小,單位爲kb。
                    SHR---共享內存的大小,單位爲kb
                    S-------進程狀態
                               D---不可中斷的睡眠狀態
                               R---運行
                               S---睡眠
                               T---跟蹤/停止
                               Z---殭屍進程
                    %CPU--上次更新到現在的CPU時間佔用比
                    %MEM--進程使用的物理內存百分比
                    TIME ---進程使用的CPU時間總計,單位爲1/100秒
                    COMMAND---命令行/命令名
備       注:以上顯示的內容只是top命令的一部分內容,還有其他列,信息如下:
                   SWAP----進程使用的虛擬內存中,被換出的大小
                   CODE---可執行代碼佔用的物理內存大小,單位爲kb
                   DATA----可執行代碼以外的部分(數據段 棧)佔用的物理內存大小,單位爲kb
                   PPID------父進程ID
                   RUSER----real user name
                   UID--------進程所有者的用戶id
                   GROUP--進程所有者的組名
                   TTY--------啓動進程的終端名,不是從終端啓動的進程則顯示爲?
                   #C--------Last used CPU (SMP)
                   TIME------進程使用的CPU時間總計,單位秒
                   nFLT------頁面錯誤次數
                   nDRT-----最後一次寫入到現在,被修改過的頁面數
                   WCHAN--若該進程在睡眠,則顯示睡眠中的系統函數名
                   Flags-----任務標誌,參照sched.h
                   更改顯示列的方法:
                   a)通過f鍵可以選擇顯示的內容,按f鍵後會顯示列的列表,按a-z即可顯示或隱藏對應的列,最後按回車鍵確定;
                   b)按o鍵可以改變列的顯示順序。按小寫的a-z可以將相應的列向右移動,而大寫的A-Z可以將相應的列向左移動。最後按回車鍵確定;
                   c)按大寫F或O鍵,然後按a-z可以將進程按照相應的列進行排序。而大寫的R鍵可以將當前的排序倒轉;



二、htop

2.1、htop 簡介

    htop 是Linux系統中的一個互動的進程查看器,一個文本模式的應用程序(在控制檯或者X終端中)。

與Linux傳統的top相比,htop更加人性化。它可讓用戶交互式操作,支持顏色主題,可橫向或縱向滾動瀏覽進程列表,並支持鼠標操作。

與top相比,htop有以下優點:

  • 可以橫向或縱向滾動瀏覽進程列表,以便看到所有的進程和完整的命令行。

  • 在啓動上,比top 更快。

  • 殺進程時不需要輸入進程號。

  • htop 支持鼠標操作。

  • top 已經很老了。


2.2、htop安裝 

[root@pyhon ~]# yum install -y htop       #配置epel源後安裝htop


2.3、htop參數

wKiom1XnppGR0sjqAAa7_Kj9a8w275.jpg

上面左上角顯示CPU、內存、交換區的使用情況,右邊顯示任務、負載、開機時間,下面就是進程實時狀況。

下面是 F1~F10 的功能和對應的字母快捷鍵。

F1
查看htop使用說明
F2htop 設定
F3搜索進程
F4增量進程過濾器
F5顯示樹形結構
F6選擇排序方式
F7可減少nice值,這樣就可以提高對應進程的優先級
F8可增加nice值,這樣就可以降低對應進程的優先級
F9可對進程傳遞信號
F10結束htop

命令行選項(COMMAND-LINE OPTIONS)

-C --no-color        使用一個單色的配色方案

-d --delay=DELAY     設置延遲更新時間,單位秒

-h --help           顯示htop 命令幫助信息

-u --user=USERNAME    只顯示一個給定的用戶的過程

-p --pid=PID,PID…       只顯示給定的PIDs

-s --sort-key COLUMN     依此列來排序

-v –version          顯示版本信息

交互式命令(INTERACTIVE COMMANDS)

上下鍵或PgUP, PgDn 選定想要的進程,左右鍵或Home, End 移動字段,當然也可以直接用鼠標選定進程;

Space    標記/取消標記一個進程。命令可以作用於多個進程,例如 "kill",將應用於所有已標記的進程

U    取消標記所有進程

s    選擇某一進程,按s:用strace追蹤進程的系統調用

l    顯示進程打開的文件: 如果安裝了lsof,按此鍵可以顯示進程所打開的文件

I    倒轉排序順序,如果排序是正序的,則反轉成倒序的,反之亦然

+, -    When in tree view mode, expand or collapse subtree. When a subtree is collapsed a "+" sign shows to the left of the process name.

a (在有多處理器的機器上)    設置 CPU affinity: 標記一個進程允許使用哪些CPU

u    顯示特定用戶進程

   按Memory 使用排序

P    按CPU 使用排序

   按Time+ 使用排序

F    跟蹤進程: 如果排序順序引起選定的進程在列表上到處移動,讓選定條跟隨該進程。這對監視一個進程非常有用:通過這種方式,你可以讓一個進程在屏幕上一直可見。使用方向鍵會停止該功能。

K    顯示/隱藏內核線程

   顯示/隱藏用戶線程

Ctrl-L    刷新

Numbers    PID 查找: 輸入PID,光標將移動到相應的進程上


2.3.1、按F1查看幫助

wKioL1XnzbaAbzdzAALrzZd5Phk095.jpg


2.3.2、按F2設定

wKiom1XnzGbwUgtuAAHrn4nTfMo269.jpg

 上方左右兩欄的顯示方式分爲Text Bar Graph Led 四種   


2.3.3、按下F3鼠標 或者點擊Search 或者輸入"/", 輸入進程名進行搜索,例如搜索ssh 

wKioL1Xn0WDjo47nAAYu-T7xXkI439.jpg


2.3.4、按下F4進入過濾器,相當於關鍵字搜索,不區分大小寫,例如過濾dev

wKiom1Xnz4mixqm2AANzcYZ9VGA076.jpg


2.3.5、 F5顯示樹形結構

     顯示樹形結構,意思跟pstree 差不多,能看到所有程序樹狀執行的結構,這對於系統管理來說相當方便,理清程序是如何產生的,當然樹狀結構的瀏覽也可以依照其他數據來排序。

wKioL1Xn0sPDXN0lAAfo6bCca74934.jpg


2.3.6、 選擇排序方式

按下F6 就可以選擇依照什麼來排序,最常排序的內容就是cpu 和memory 吧!

wKioL1Xn1BOyfwsHAAgt7h9HMoI909.jpg


2.3.7 操作進程

F7、F8分別對應nice-和nice+,F9對應kill給進程發信號,選好信號回車就OK了

wKiom1Xn0mryYA6tAAbzT8ua2zY530.jpg



三、glances

3.1、glances簡介

     glances 是一款用於 Linux、BSD 的開源命令行系統監視工具,它使用 Python 語言開發,使用psutil 庫來採集系統數據,能夠監視 CPU、負載、內存、磁盤 I/O、網絡流量、文件系統、系統溫度等信息。相對於top/vmstat/iostat等老牌監控工具,glances具有的優點是:Glances 可以監控本機也可以通過客戶端服務器模式監控其他機器;Glances 提供了基於 XML/RPC 的 API 便於其他程序調用,可編程;Glances 可以將數據輸出保存到 csv 或 html 格式的文件方便其他程序處理(報告或繪製圖形)。


3.2、glances安裝

[root@pyhon ~]# yum install -y glances


3.3、glances顯示信息說明

[root@pyhon ~]# glances

wKiom1Xn7lGwGBrvAAVpzWYy9S8513.jpg

VIRT: 虛擬內存大小
RES: 進程佔用的物理內存值
CPU%:該進程佔用的 CPU 使用率
MEM%:該進程佔用的物理內存和總內存的百分比
PID: 進程 ID 號
USER: 進程所有者的用戶名
TIME+: 該進程啓動後佔用的總的 CPU 時間
IOR/s 和 IOW/s: 進程的讀寫 I/O 速率
NAME: 進程名稱
NI: 進程優先級
S: 進程狀態,其中 S 表示休眠,R 表示正在運行,Z 表示僵死狀態。



四、dstat

4.1、dstat簡介

      dstat工具默認情況下會動態顯示CPU,disk,net,page,system負載情況


4.2、安裝dstat

[root@pyhon ~]# yum install -y dstat


4.3、常用參數:

-c cpu是也,顯示CPU系統佔用,用戶佔用,空閒,等待,中斷,軟件中斷等信息

wKioL1Xn9EbCv-NUAAB6AJvKK_E423.jpg

-C 當有多個CPU時候,此參數可按需分別顯示cpu狀態;如 -C 0,1 顯示cpu0和cpu1的信息

[root@pyhon ~]# dstat -C 0,1

wKiom1Xn7_KBqJz0AAEvZwsX4qI847.jpg

-d disk,顯示磁盤讀寫數據大小

-D 指定磁盤讀寫數據大小

wKiom1Xn8LWAwf2DAADiK1YBI44427.jpg

-n net 顯示網絡狀態

-N net 有多塊網卡時,指定要顯示的網卡

wKiom1Xn8MvhmFqWAADxlOwWcJo591.jpg

-l load average 顯示系統負載情況

wKioL1Xn8wCDoK0ZAABUwACcul4684.jpg

-m memory 顯示內存使用情況

wKiom1Xn8PbBjXTDAACGeXMrrnM430.jpg

-g page 顯示頁面使用情況

wKioL1Xn8zLytx94AABL0eRTOJg041.jpg

-p process 顯示進程狀態

wKiom1Xn8SXCTjNCAABU9xL82Dw199.jpg

-s swap 顯示交換分區使用情況

wKioL1Xn82DQmLCWAABT28ROKAU623.jpg

-r I/O請求情況

wKiom1Xn8WWDoX6LAABU8ecKGT4520.jpg

-y system status

wKioL1Xn86WT00ZpAABV4ASPWmM386.jpg

--ipc 顯示ipc消息隊列,信號等信息

wKiom1Xn8ZzAPr9dAAC9rleFRXc353.jpg

--socket 用來顯示tcp udp端口狀態

wKioL1Xn8-GwagQBAAB807udXM0521.jpg

-v vmstat 等同於 -pmgdsc -D total

wKiom1Xn8deisx8zAAGu6h8TbiA064.jpg


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