1. 程式人生 > >Lunix執行緒、記憶體管理—htop命令詳解

Lunix執行緒、記憶體管理—htop命令詳解

htop 簡介

--------------------- 本文來自 擒賊先擒王 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/freeking101/article/details/79173903?utm_source=copy

htop類似於 top 命令,但可以讓你在垂直和水平方向上滾動,所以你可以看到系統上執行的所有程序,以及他們完整的命令列。可以不用輸入程序的 PID 就可以對此程序進行相關的操作 (killing, renicing)。htop 是Linux系統中的一個互動的程序檢視器,一個文字模式的應用程式(在控制檯或者X終端中),需要ncurses。與Linux傳統的top相比,htop更加人性化。它可讓使用者互動式操作,支援顏色主題,可橫向或縱向滾動瀏覽程序列表,並支援滑鼠操作。與top相比,htop有以下優點:

  • 可以橫向或縱向滾動瀏覽程序列表,以便看到所有的程序和完整的命令列。
  • 在啟動上,比top 更快。
  • 殺程序時不需要輸入程序號。
  • htop 支援滑鼠操作。
  • top 已經很老了

htop 引數

可以使用命令:apt-get install htop 來安裝 htop,安裝完成之後,鍵入 htop 命令,開啟htop。

 

可以看到總共分四個區域:

  • 第一區域:CPU、記憶體、Swap的使用情況;
  • 第二區域:任務、執行緒、平均負載及系統執行時間的資訊。平均負載部分提供了三個數字,這僅僅表示的是過去的5分鐘、10分鐘和15分鐘系統的平均負載而已,在單核的系統中平均負載為1表示的是百分之百的 CPU 利用率。最後,執行時間 (uptime)標示的數字是從系統啟動起到當前的執行總時間。
  • 第三區域:當前系統中的所有程序。各列說明: PID:程序標誌號,是非零正整數 USER:程序所有者的使用者名稱 PR:程序的優先級別 NI:程序的優先級別數值 VIRT:程序佔用的虛擬記憶體值 RES:程序佔用的實體記憶體值 SHR:程序使用的共享記憶體值 S:程序的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值是負數 %CPU:該程序佔用的CPU使用率 %MEM:該程序佔用的實體記憶體和總記憶體的百分比 TIME+:該程序啟動後佔用的總的CPU時間 COMMAND:程序啟動的啟動命令名稱
  • 第四區域:當前介面中F1-F10功能鍵中定義的快捷功能。即 底部選單欄。

互動命令用上檔鍵shift。常用命令,shift+m 按照記憶體大小排序。shift+h 收縮執行緒。q 退出

下面是 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追蹤程序的系統呼叫。(s:顯示游標所在程序執行的系統呼叫;)

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    顯示特定使用者程序

M    按照記憶體使用百分比排序,對應MEM%列;

P     按照CPU使用百分比排序,對應CPU%列;

T     按照程序執行的時間排序,對應TIME+列;

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

K    顯示/隱藏核心執行緒

H    顯示/隱藏使用者執行緒#    快速定位游標到PID所指定的程序上。

Ctrl-L    重新整理

Numbers    PID 查詢: 輸入PID,游標將移動到相應的程序上

htop 使用

顯示自帶幫助:滑鼠點選Help或者按F1 顯示自帶幫助

htop 設定:滑鼠點選Setup或者按下F2 之後進入htop 設定的頁面。只需使用箭頭鍵選擇和更改特定的設定。

Setup 選項下的: 1.Meters 設定頂端的顯示資訊,分為左右兩側,Left column 表示左側的顯示的資訊,Right column表示右側顯示的資訊,如果要新加選項,可以選擇Available meters新增,F5新增到上方左側,F6新增到上方右側。Left column和Right column下面的選項,可以選定資訊的顯示方式,有LED、Bar(進度條)、Text(文字模式),可以根據個人喜好進行設定 2. Display options 選擇要顯示的內容,按空格 x表示顯示,選擇完後,按F10儲存 3.Colors 設定介面以什麼顏色來顯示,個人認為用處不大,各人喜好不同 4.Colums 作用是增加或取消要顯示的各項內容,選擇後F7(向上移動)、F8(向下移動)、F9(取消顯示、F10(儲存更改))此處增加了PPID、PGRP,根據各人需求,顯示那些資訊。

Meters 頁面設定了頂端的一些資訊顯示,頂端的顯示又分為左右兩側,到底能顯示些什麼可以在最右側那欄新增,要新增到上方左側(F5)或是右側(F6)都可以,這就是個人設定的範圍了。這裡多加了一個時鐘。

我們也可以自定義程序區域中的顯示內容:

搜尋程序:滑鼠點選Search 或者按下F3 或者輸入"/", 輸入程序名進行搜尋,例如搜尋ssh

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

search和filter的區別:search會將游標定位到符合條件的程序上,通過F3鍵進行逐個查詢;而filter會直接將符合條件的程序篩選出來。search和filter都使用ESC鍵來取消功能。

顯示樹形結構:輸入"t"或按下F5,顯示樹形結構,意思跟pstree 差不多,能看到所有程式樹狀執行的結構,這對於系統管理來說相當方便,理清程式是如何產生的,當然樹狀結構的瀏覽也可以依照其他資料來排序。退出樹狀檢視模式,請再一次按下 F5 鍵。

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

F7、F8分別對應nice-和nice+,F7表示減小nice值(增大優先順序),F8增大nice值(減小優先順序),選擇某一程序,按F7或F8來增大或減小nice值,nice值範圍為-20-19

F9對應kill給程序發訊號,選好訊號回車就OK了( F9:殺掉指定程序)。

選擇某一程序按F9即可殺死此程序。如你所見,視窗的左邊部分列出的是所有可用的訊號,右邊部分列出的是程序。只要選中訊號,並選擇一個程序,然後按下 enter 鍵,選中的訊號就會發送到此程序。

F10:退出htop。 空格鍵:用於標記選中的程序,用於實現對多個程序同時操作;要標註某個程序條目,需要做的就是選中此條目,然後按下‘空格’鍵。

顯示某個使用者的程序,在左側選擇使用者:輸入"u",在左側選擇使用者

Alias top:也許你用慣了top,我們也可以用top來開啟htop。

編輯/root/.bashrc檔案,新增如下程式碼:
if [ -f /usr/local/bin/htop ]; then
    alias top=’/usr/local/bin/htop’
fi
source /root/.bashrc

常用的互動命令: 1) space 標記一個程序(類似windows按著Ctrl多選一樣) 2) U 取消所有標記; 3) l 顯示程序打來的檔案; 4) u 顯示特定使用者; 5) M 按照記憶體排序; 6) P 按照CPU排序; 7) T 按線上時長排序; 8) ctrl + L 重新整理; 9) 直接輸入數字,查詢對應的PID程序;

命令列選項

除了上面介紹的一些熱鍵,htop 還提供了很有用的命令列選項。下面是其中一部分: -s 選項 : 按指定的列排序。例如,htop -s PID 命令會按 PID 列的大小排序來顯示。 -u 選項 : 顯示指定的使用者的程序資訊列表。例如,htop -u himanshu 命令會只顯示出使用者名稱為 himanshu 的相關程序。 -d 選項 : 設定重新整理的延遲時間。例如,htop -d 100 命令會使輸出在1秒後才會重新整理(引數 -d 的單位是10微秒)。