1. 程式人生 > >htop: 比top好用的Linux程序管理監控工具

htop: 比top好用的Linux程序管理監控工具

1. htop簡介
Htop是一款運行於Linux系統監控與程序管理軟體,用於取代Unix下傳統的top。與top只提供最消耗資源的程序列表不同,htop提供所有程序的列表,並且使用彩色標識出處理器、swap和記憶體狀態。

使用者一般可以在top無法提供詳盡系統資訊的情況下選擇安裝並使用htop。比如,在查詢應用程式的記憶體洩漏問題時。與top相比,htop提供更方便、游標控制的介面來殺死程序。

htop用C語言編寫,採用了ncurses庫。htop的名稱源於其作者的名字。

2、htop的安裝:apt-get install htop

3、htop的使用:

htop常用功能鍵

            F1 : 檢視htop使用說明
            F2 : 設定
            F3 : 搜尋程序
            F4 : 過濾器,按關鍵字搜尋
            F5 : 顯示樹形結構
            F6 : 選擇排序方式
            F7 : 減少nice值,這樣就可以提高對應程序的優先順序
            F8 : 增加nice值,這樣可以降低對應程序的優先順序
            F9 : 殺掉選中的程序
            F10 : 退出htop

            / : 搜尋字元
            h : 顯示幫助
            l :顯示程序開啟的檔案: 如果安裝了lsof,按此鍵可以顯示程序所開啟的檔案
            u :顯示所有使用者,並可以選擇某一特定使用者的程序
            s : 將呼叫strace追蹤程序的系統呼叫
            t : 顯示樹形結構

            H :顯示/隱藏使用者執行緒
            I :倒轉排序順序
            K :顯示/隱藏核心執行緒    
            M :按記憶體佔用排序
            P :按CPU排序    
            T :按執行時間排序

            上下鍵或PgUP, PgDn : 移動選中程序
            左右鍵或Home, End : 移動列表    
            Space(空格) : 標記/取消標記一個程序。命令可以作用於多個程序,例如 "kill",將應用於所有已標記的程序

上面左上角顯示CPU、記憶體、Swap使用情況,右邊顯示任務、負載、開機時間,下面就是程序實時狀況。
下面是 F1~F10 的功能和對應的字母快捷鍵。

Shortcut Key Function Key Description 中文說明
h, ? F1 Invoke htop Help 檢視htop使用說明
S F2 Htop Setup Menu htop 設定
/ F3 Search for a Process 搜尋程序
\ F4 Incremental process filtering 增量程序過濾器
t F5 Tree View 顯示樹形結構
<, > F6 Sort by a column 選擇排序方式
[ F7 Nice – (change priority) 可減少nice值,這樣就可以提高對應程序的優先順序
] F8 Nice + (change priority) 可增加nice值,這樣就可以降低對應程序的優先順序
k F9 Kill a Process 可對程序傳遞訊號
q F10 Quit htop 結束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 倒轉排序順序,如果排序是正序的,則反轉成倒序的,反之亦然
+, – 在樹形模式下,展開或摺疊子樹
a (在有多處理器的機器上) 設定 CPU affinity: 標記一個程序允許使用哪些CPU
u 顯示特定使用者程序
M 按Memory使用排序
P 按CPU使用排序
T 按Time+使用排序
F 跟蹤程序: 如果排序順序引起選定的程序在列表上到處移動,讓選定條跟隨該程序。這對監視一個程序非常有用:通過這種方式,你可以讓一個程序在螢幕上一直可見。使用方向鍵會停止該功能
K 顯示/隱藏核心執行緒
H 顯示/隱藏使用者執行緒
Ctrl-L 重新整理
Numbers PID 查詢: 輸入PID,游標將移動到相應的程序上

防止程序重複顯示

在使用htop檢視程序資訊的時候,經常會出現很多個程序重複的情況,如下情況:

經研究發現,htop會把一個程序裡的執行緒當做一個程序來顯示出來,上圖中的java程序有多個執行緒,所以htop顯示了多個程序。

這個特性對於分析程序效能很不有利, 所以我們要關掉它。

好在htop也是提供了一個方法來設定這個選項。

F2

選擇 Display options

選擇 Hide userland threads

如下圖所示

這樣以後,在htop的程序列表裡再也看不見一堆重複的程序了

資料說明

第一行與第二行,顯示CPU當前的執行負載,我這裡是雙CPU就顯示兩行!

第三行,顯示記憶體的使用情況!

第四行,顯示交換分割槽使用情況!

第一行,顯示了當前的程序總數,其中有一個程序在執行!

第二行,顯示了當前的負載情況,分別代表了,1分鐘,5分鐘,15分鐘負載!

第三行,顯示了系統的執行的時間!

PID:進行的標識號
USER:執行此程序的使用者
PRI:程序的優先順序
NI:程序的優先級別值,預設的為0,可以進行調整
VIRT:程序佔用的虛擬記憶體值
RES:程序佔用的實體記憶體值
SHR:程序佔用的共享記憶體值
S:程序的執行狀況,R表示正在執行、S表示休眠,等待喚醒、Z表示僵死狀態
%CPU:該程序佔用的CPU使用率
%MEM:該程序佔用的實體記憶體和總記憶體的百分比
TIME+:該程序啟動後佔用的總的CPU時間
COMMAND:程序啟動的啟動命令名稱

引數說明

htop –d 資料重新整理時間

htop –u aurain 顯示使用者aurain的所屬程序

M    Memory 使用排序

P    CPU 使用排序

T    Time+ 使用排序

F3 按程序名搜尋

直接輸入數字 游標將定位於該PID的程序

退出

參考說明

http://www.cnblogs.com/mchina/archive/2013/03/15/2858041.html

VIRT:虛擬記憶體virtual memory usage。一個應用佔有的地址空間,只是要應用程式要求的,就全算在這裡,而不管它真的用了沒有。

RES:常駐記憶體resident memory usage。這個值就是該應用程式真正使用的記憶體,但還有兩個小問題,一是有些東西可能放在交換盤上了(SWAP),二是有些記憶體可能是共享的。

SHRshared memory。共享記憶體。就是說這一塊記憶體空間有可能也被其他應用程式使用著;而Virt  Shr似乎就是這個程式所要求的並且沒有共享的記憶體空間。