linux下top命令詳細介紹


linuxtop命令詳細介紹

   top 命令是 Linux 下常用的系統資源占用查看及性能分析工具,能夠實時顯示系統中各個進程的資源(比如cpu內存的使用)占用狀況,top命令的執行結果是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前台執行該命令,它將獨占前台,直到用戶終止該程序為止.top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.內存使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設定。top命令基本上是各個版本的linux的自帶命令,例如:CentOS,redhat,ubuntu等。

top命令的格式參數如下

1)命令及參數基本用法:

top  -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

2)常用參數說明

d 指定每兩次屏幕信息刷新之間的時間間隔。當然用戶可以使用s交互命令來改變之。
p 通過指定監控進程ID來僅僅監控某個進程的狀態。
q 該選項將使top沒有任何延遲的進行刷新。如果調用程序有超級用戶權限,那么top將以盡可能高的優先級運行。
S 指定累計模式。
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程。
c 顯示整個命令行而不只是顯示命令名。
-n :與 -b 搭配,意義是,需要進行幾次 top 的輸出結果。
-p :指定某些個 PID 來進行觀察監測而已。
在 top 執行過程當中可以使用的按鍵指令:
? :顯示在 top 當中可以輸入的按鍵指令;
P :以 CPU 的使用資源排序顯示;
M :以 Memory 的使用資源排序顯示;
N :以 PID 來排序喔!
T :由該 Process 使用的 CPU 時間累積 (TIME+) 排序。
k :給予某個 PID 一個訊號 (signal)
r :給予某個 PID 重新制訂一個 nice 值。

 

 

linux下top命令執行結果

1)top命令執行結果如圖所示

linux下top命令執行結果詳解

2)top命令執行結果重要列的含義詳解

默認顯示的列包括 PID,USERPR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,COMMAND.

top命令結果各列的含義如下:

列名    含義
PID    進程id
PPID    父進程id
RUSER    Realusername
UID    進程所有者的用戶id
USER    進程所有者的用戶名
GROUP    進程所有者的組名
TTY    啟動進程的終端名。不是從終端啟動的進程則顯示為?
PR       優先級
NInice     值。負值表示高優先級,正值表示低優先級
P        最后使用的CPU,僅在多CPU環境下有意義
%CPU    上次更新到現在的CPU時間占用百分比
TIME    進程使用的CPU時間總計,單位秒
TIME+    進程使用的CPU時間總計,單位1/100秒
%MEM    進程使用的物理內存百分比
VIRT    進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
SWAP    進程使用的虛擬內存中,被換出的大小,單位kb。
RES    進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
CODE    可執行代碼占用的物理內存大小,單位kb
DATA    可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb
SHR    共享內存大小,單位kb
nFLT    頁面錯誤次數
nDRT    最后一次寫入到現在,被修改過的頁面數。
S    進程狀態。
D=    不可中斷的睡眠狀態
R=    運行
S=    睡眠
T=    跟蹤/停止
Z=    僵屍進程
COMMAND    命令名/命令行
WCHAN    若該進程在睡眠,則顯示睡眠中的系統函數名
 

3)top命令執行結果按照某一列排序

    在命令行提示符執行top命令,輸入大寫P,則結果按CPU占用降序排序。輸入大寫M,結果按內存占用降序排序。(注:大寫P可以在capslock狀態輸入p,或者按Shift+p)。

     默認情況下僅顯示比較重要的 PID、USERPR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內容

更改顯示內容

通過 f 鍵可以選擇顯示的內容。按 f 鍵之后會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最后按回車鍵確定。

按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最后按回車鍵確定。

按大寫的 F 或 O 鍵,然后按 a-z 可以將進程按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。

linux下top命令快捷鍵操作

linux下top命令使用舉例 

實例1:每兩秒鍾更新一次 top ,觀察整體信息,-d參數舉例

[root@linux ~]# top -d 2
top - 18:30:36 up 30 days, 7 min, 1 user, load average: 0.42, 0.48, 0.45
Tasks: 163 total, 1 running, 161 sleeping, 1 stopped, 0 zombie
Cpu(s): 4.7% us, 4.0% sy, 6.3% ni, 82.5% id, 0.4% wa, 0.1% hi, 2.0% si
Mem: 1033592k total, 955252k used, 78340k free, 208648k buffers
Swap: 1052216k total, 728k used, 1051488k free, 360248k cached
<==如果加入 k 或 r 時,就會有相關的字樣出現在這里
  
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3981 apache 34 19 84012 11m 7352 S 17.3 1.2 0:00.09 httpd
1454 mysql 16 0 289m 40m 2228 S 3.8 4.0 115:01.32 mysqld
3985 dmtsai 15 0 2148 904 668 R 3.8 0.1 0:00.03 top
1 root 16 0 3552 552 472 S 0.0 0.1 0:08.90 init
2 root RT 0 0 0 0 S 0.0 0.0 0:52.76 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:03.01 ksoftirqd/0
 

 實例2:將 top 的信息進行 2 次,然后將結果輸出到 /tmp/top.txt,-B -N參數

[root@linux ~]# top -b -n 2 > /tmp/top.txt

實例3:假設 9999 是一個已經存在的 PID ,用top命令僅觀察指定pid的程序的-p參數用法

[root@linux ~]# top -d 2 -p 9999 top - 13:53:00 up 51 days, 2:27, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 385676k total, 371760k used, 13916k free, 131164k buffers Swap: 1020116k total, 880k used, 1019236k free, 95772k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9999 root 16 0 5396 1544 1244 S 0.0 0.4 0:00.07 bash

 示例4:在linux中查看指定進程的線程數的-H參數用法

top -H

手冊中說:-H : Threads toggle

加上這個選項啟動top,top一行顯示一個線程。否則,它一行顯示一個進程。

在linux中查看mysql線程的top命令,mysql的pid為2308

top  -H -p 2308

linux下top命令查看指定進程的線程

示例5: top命令執行結果之后按數字鍵1顯示各個CPU的核心命令

linux下top命令詳解包括top命令參數使用及結果(virt,res,shr)排序舉例說明

 

linux下top命令執行結果之后按數字鍵1顯示各個CPU的核心命令

linux下top命令補充說明(常見問題解答)

top命令是Linux上進行系統監控的首選命令,當不能滿足用戶需求時,通常可用ps和netstate兩個命令來補充top的不足。

Linux下top命令中%CPU結果為什么比%us的結果高?

    us是user,sy是system,注意看%wa,waiting,這個是等IO時間,一般來說是在等磁盤操作。

100%-%id(idle)就是總共實際使用的CPU時間了。

在Linux下怎樣讓top命令啟動之后就按內存使用排序?

    在鍵盤上輸入大寫字母M 以達到以內存占用率大小順序排列。另外輸入大寫字母P可以按CPU使用率排序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM