一、top命令
1、簡介
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序爲止.比較準確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.內存使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定製文件中進行設定。
2、常用選項
-b:以批處理模式操作;
-c:顯示完整的治命令;
-d:屏幕刷新間隔時間;
-I:忽略失效過程;
-s:保密模式;
-S:累積模式;
-i<時間>:設置間隔時間;
-u<用戶名>:指定用戶名;
-p<進程號>:指定進程;
-n<次數>:循環顯示的次數。
3、top命令輸出各參數介紹
[root@hpf-linux ~]# top -bn1 top - 21:50:48 up 4 min, 2 users, load average: 0.00, 0.02, 0.00 Tasks: 102 total, 1 running, 101 sleeping, 0 stopped, 0 zombie Cpu(s): 0.5%us, 0.8%sy, 0.0%ni, 98.4%id, 0.2%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 1030416k total, 141908k used, 888508k free, 14684k buffers Swap: 2047996k total, 0k used, 2047996k free, 51848k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 2900 1412 1204 S 0.0 0.1 0:01.34 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1 10 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1 .................................
3.1、系統運行時間和平均負載
top - 21:50:48 up 4 min, 2 users, load average: 0.00, 0.02, 0.00
說明:
當前時間
系統已運行的時間
當前登錄用戶的數量
相應最近5、10和15分鐘內的平均負載。
3.2、任務
Tasks: 102 total, 1 running, 101 sleeping, 0 stopped, 0 zombie
說明:
第二行顯示的是任務或者進程的總結。進程可以處於不同的狀態。這裏顯示了全部進程的數量。除此之外,還有正在運行、睡眠、停止、殭屍進程的數量(殭屍是一種進程的狀態)。這些進程概括信息可以用't'切換顯示。
3.3、CPU 狀態
Cpu(s): 0.5%us, 0.8%sy, 0.0%ni, 98.4%id, 0.2%wa, 0.0%hi, 0.1%si, 0.0%st
說明:
us, user: 運行(未調整優先級的) 用戶進程的CPU時間
sy,system: 運行內核進程的CPU時間
ni,niced:運行已調整優先級的用戶進程的CPU時間
wa,IO wait: 用於等待IO完成的CPU時間
hi:處理硬件中斷的CPU時間
si: 處理軟件中斷的CPU時間
st:這個虛擬機被hypervisor偷去的CPU時間(譯註:如果當前處於一個hypervisor下的vm,實際上hypervisor也是要消耗一部分CPU處理時間的)。
3.4、內存使用狀況
Mem: 1030416k total, 141908k used, 888508k free, 14684k buffers
Swap: 2047996k total, 0k used, 2047996k free, 51848k cached
說明:
接下來兩行顯示內存使用率,有點像'free'命令。第一行是物理內存使用,第二行是虛擬內存使用(交換空間)。 物理內存顯示如下:全部可用內存、已使用內存、空閒內存、緩衝內存。相似地:交換部分顯示的是:全部、已使用、空閒和緩衝交換空間。內存顯示可以用'm'命令切換。
3.5、字段列
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 2900 1412 1204 S 0.0 0.1 0:01.34 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1 10 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
說明:
PID : 進程ID,進程的唯一標識符
USER : 進程所有者的實際用戶名。
PR : 進程的調度優先級。這個字段的一些值是'rt'。這意味這這些進程運行在實時態。
NI : 進程的nice值(優先級)。越小的值意味着越高的優先級。
VIRT :進程使用的虛擬內存。
RES : 駐留內存大小。駐留內存是任務使用的非交換物理內存大小。
SHR : SHR是進程使用的共享內存。
S : 這個是進程的狀態。它有以下不同的值:
D - 不可中斷的睡眠態。
R – 運行態
S – 睡眠態
T – 被跟蹤或已停止
Z – 殭屍態
%CPU : 自從上一次更新時到現在任務所使用的CPU時間百分比。
%MEM: 進程使用的可用物理內存百分比。
TIME+ : 任務啓動後到現在所使用的全部CPU時間,精確到百分之一秒。
COMMAND : 運行進程所使用的命令。
還有許多在默認情況下不會顯示的輸出,它們可以顯示進程的頁錯誤、有效組和組ID和其他更多的信息。
二、htop命令
1、htop命令簡介
top作爲日常管理工作中最常用也是最重要的Linux系統監控工具之一,可以動態觀察系統進程狀況。但其缺點就是隻支持鍵盤操作,顯示也單調。作爲剛纔Windows轉到Linux的我來說,現在有了一個更好的選擇:htop。htop是Linux系統下一個基本文本模式的、交互式的進程查看器,主要用於控制檯或shell中,可以替代top,或者說是top的高級版。
htop命令優點:
1) 快速查看關鍵性能統計數據,如CPU(多核佈局)、內存/交換使用;
2) 可以橫向或縱向滾動瀏覽進程列表,以查看所有的進程和完整的命令行;
3) 殺掉進程時可以直接選擇而不需要輸入進程號;
4) 通過鼠標操作條目;
5) 比top啓動得更快;
2、安裝htop
[[email protected] ~]# yum install -y htop
3、常用功能鍵
鍵入htop 命令,打開htop:
上面左上角顯示CPU、內存、交換區的使用情況,右邊顯示任務、負載、開機時間,下面就是進程實時狀況。
下面是 F1~F10 的功能和對應的字母快捷鍵:
F1 : 查看htop使用說明
F2 : 設置
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 倒轉排序順序,如果排序是正序的,則反轉成倒序的,反之亦然
+, - 在樹形模式下,展開或摺疊子樹
a (在有多處理器的機器上) 設置 CPU affinity: 標記一個進程允許使用哪些CPU
u 顯示特定用戶進程
M 按Memory 使用排序
P 按CPU 使用排序
T 按Time+ 使用排序
F 跟蹤進程: 如果排序順序引起選定的進程在列表上到處移動,讓選定條跟隨該進程。這對監視一個進程非常有用:通過這種方式,你可以讓一個進程在屏幕上一直可見。使用方向鍵會停止該功能。
K 顯示/隱藏內核線程
H 顯示/隱藏用戶線程
Ctrl-L 刷新
Numbers PID 查找: 輸入PID,光標將移動到相應的進程上
4、顯示說明
左邊部分從上至下,分別爲,cpu、內存、交換分區的使用情況,右邊部分爲:Tasks爲進程總數,當前運行的進程數、Load average爲系統1分鐘,5分鐘,10分鐘的平均負載情況、Uptime爲系統運行的時間。
PID:進行的標識號
USER:運行此進程的用戶
PRI:進程的優先級
NI:進程的優先級別值,默認的爲0,可以進行調整
VIRT:進程佔用的虛擬內存值
RES:進程佔用的物理內存值
SHR:進程佔用的共享內存值
S:進程的運行狀況,R表示正在運行、S表示休眠,等待喚醒、Z表示僵死狀態
%CPU:該進程佔用的CPU使用率
%MEM:該進程佔用的物理內存和總內存的百分比
TIME+:該進程啓動後佔用的總的CPU時間
COMMAND:進程啓動的啓動命令名稱
5、htop使用說明
F1:顯示幫助信息
F2 Htop設定
Setup 選項下的:
Meters
設定頂端的顯示信息,分爲左右兩側,Left column 表示左側的顯示的信息,Right column表示右側顯示的信息,如果要新加選項,可以選擇Available meters添加,F5新增到上方左側,F6新增到上方右側。Left column和Right column下面的選項,可以選定信息的顯示方式,有LED、Bar(進度條)、Text(文本模式),可以根據個人喜好進行設置
Display options
選擇要顯示的內容,按空格 x表示顯示,選擇完後,按F10保存
Colors
設定界面以什麼顏色來顯示。
Colums
作用是增加或取消要顯示的各項內容,選擇後F7(向上移動)、F8(向下移動)、F9(取消顯示、F10(保存更改))根據各人需求,顯示那些信息。
F3 搜索進程
在界面下按F3或直接輸入”/”就可以直接進入搜索模式,是按照進程名進行搜索的。例如
搜索到的進程會用設定的顏色標記出來,方便查看。
F4:過濾器
相當於模糊查找,不區分大小寫,下方輸入要搜索的內容後,則界面只顯示搜索到的內容,更加方便查看,例如:
F5:以樹形方式顯示
F6:排序方式
按下F6後會跳轉至上圖界面,讓您選擇以什麼方式進行排序,在Sort by下選擇您要以什麼來排序。
F7,F8:調整進程nice值
F7表示減小nice值(增大優先級),F8增大nice值(減小優先級),選擇某一進程,按F7或F8來增大或減小nice值,nice值範圍爲-20-19。
F9:殺死進程
選擇某一進程按F9即可殺死此進程。
F10:退出htop
擴展學習:
https://linux.cn/thread-12037-1-1.html
http://my.oschina.net/leejun2005/blog/157910
http://my.oschina.net/leejun2005/blog/157910
http://www.cnblogs.com/me115/p/3842081.html
http://blog.csdn.net/sanshiqiduer/article/details/1933625