Linux之top命令
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似于Windows的任務管理器。下面詳細介紹它的使用方法。top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨占前臺,直到用戶終止該程序為止.比較準確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.內存使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設定.
命令格式
top [參數]
命令功能
顯示當前系統正在執行的進程的相關信息,包括進程ID、內存占用率、CPU占用率等
命令參數
-b 批處理
-c 顯示完整的路徑
-I 忽略失效過程
-s 保密模式
-S 累積模式
-i<時間> 設置間隔時間
-u<用戶名> 指定用戶名
-p<進程號> 指定進程
-n<次數> 循環顯示的次數
顯示進程信息
> top top - 21:16:05 up 59 days, 4:13, 1 user, load average: 0.25, 0.42, 0.42 Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.3 us, 3.1 sy, 0.0 ni, 94.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 16265536 total, 807520 free, 12503980 used, 2954036 buff/cache KiB Swap: 0 total, 0 free, 0 used. 2625804 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 29160 root 0 -20 4343004 399576 3936 S 49.5 2.5 10752:33 vpnserver
前五行是當前系統情況整體的統計信息區。下面我們看每一行信息的具體意義。
top - 21:16:05 up 59 days, 4:13, 1 user, load average: 0.25, 0.42, 0.42
21:16:05 當前系統時間
up 59 days距離上次服務器重啟服務器已經運行了59天
1 user當前有1個用戶登錄系統
load average: 0.25, 0.42, 0.42 load average后面的三個數分別是1分鐘、5分鐘、15分鐘的負載情況
load average數據是每隔5秒鐘檢查一次活躍的進程數,然后按特定算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高于5的時候就表明系統在超負荷運轉了。
Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie
系統現在共有181個進程,其中處于運行中的有1個,180個在休眠(sleep),stoped狀態的有0個,zombie狀態(僵尸)的有0個。
%Cpu(s): 2.3 us, 3.1 sy, 0.0 ni, 94.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
2.3% us — 用戶空間占用CPU的百分比。
3.1% sy — 內核空間占用CPU的百分比。
0.0% ni — 改變過優先級的進程占用CPU的百分比
94.6% id — 空閑CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中斷(Hardware IRQ)占用CPU的百分比
0.2% si — 軟中斷(Software Interrupts)占用CPU的百分比
0.0% st - 表示被強制等待虛擬CPU的時間
KiB Mem : 16265536 total, 807520 free, 12503980 used, 2954036 buff/cache
16265536k total — 物理內存總量(16GB)
807520k free — 空閑內存總量(807MB)
12503980k used — 使用中的內存總量(12GB)
2954036k buffers — 緩存的內存量 (2GB)
KiB Swap: 0 total, 0 free, 0 used. 2625804 avail Mem
0k total — 交換區總量(0)
0k free — 空閑交換區總量(0)
0k used — 使用的交換區總量(0)
2625804 avail Mem 虛擬內存總量(2.6GB)
buff/cache雖然占用物理內存,但當內存不夠時也可以直接使用,因此物理內存的可使用空間為:free + buff/cache。
PID — 進程id
USER — 進程所有者
PR — 進程優先級
NI — nice值。負值表示高優先級,正值表示低優先級
VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
SHR — 共享內存大小,單位kb
S —進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進程
%CPU — 上次更新到現在的CPU時間占用百分比
%MEM — 進程使用的物理內存百分比
TIME+ — 進程使用的CPU時間總計,單位1/100秒
COMMAND — 進程名稱(命令名/命令行)
多U多核CPU監控
在top基本視圖中,按鍵盤數字“1”,可監控每個邏輯CPU的狀況:
> top
高亮顯示當前運行進程
敲擊鍵盤“b”(打開/關閉加亮效果),top的視圖變化如下
進程id為22221的“top”進程被加亮了,top進程就是視圖第二行顯示的唯一的運行態(runing)的那個進程,可以通過敲擊“y”鍵關閉或打開運行態進程的加亮效果。
進程字段排序
top默認的排序列是%CPU
敲擊鍵盤“x”(打開/關閉排序列的加亮效果),top的視圖變化如下
通過shift + >或shift + <可以向右或左改變排序列
按一下shift + >就會按照%MEM排序,以此類推
顯示完整命令
top -c或者先輸入top進入后按c鍵
> top -c
設置信息更新次數
> top -n 2
表示更新兩次后終止更新顯示
設置信息更新周期
> top -d 3
表示更新周期為3秒
顯示指定的進程信息
> top -p 123
top交互命令
在top 命令執行過程中可以使用的一些交互命令。這些命令都是單字母的,如果在命令行中使用了s 選項, 其中一些命令可能會被屏蔽。
h 顯示幫助畫面,給出一些簡短的命令總結說明
k 終止一個進程。
i 忽略閑置和僵死進程。這是一個開關式命令。
q 退出程序
r 重新安排一個進程的優先級別
S 切換到累計模式
s 改變兩次刷新之間的延遲時間(單位為s),如果有小數,就換算成m s。輸入0值則系統將不斷刷新,默認值是5 s
f或者F 從當前顯示中添加或者刪除項目
o或者O 改變顯示項目的順序
l 切換顯示平均負載和啟動時間信息
m 切換顯示內存信息
t 切換顯示進程和CPU狀態信息
c 切換顯示命令名稱和完整命令行
M 根據駐留內存大小進行排序
P 根據CPU使用百分比大小進行排序
T 根據時間/累計時間進行排序
W 將當前設置寫入~/.toprc文件中
按q可以退出top
Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。