top (top) 令常常用來實時監控linux的系統情況,好比cpu、內存的使用,相似於Windows的任務管理器。linux
top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]
-b 以批量模式運行,但不能接受命令行輸入;
-c 顯示命令行,而不單單是命令名;
-d N 顯示兩次刷新時間的間隔,好比 -d 5,表示兩次刷新間隔爲5秒;
-i 禁止顯示空閒進程或殭屍進程;
-n NUM 顯示更新次數,而後退出。好比 -n 5,表示top更新5次數據就退出;
-p PID 僅監視指定進程的ID;PID是一個數值;
-q 不經任何延時就刷新;
-s 安全模式運行,禁用一些交互互指令;
-S 累積模式,輸出每一個進程的總的CPU時間,包括已死的子進程;
top - 15:04:53 up 10 min, 3 users, load average: 0.00, 0.00, 0.00
15:04:53 | 當前系統時間 |
up 10 min | 系統已經運行了10分鐘 |
3 users | 當前有3個用戶登陸系統 |
load average: 0.00, 0.00, 0.00 | load average後面的三個數分別是1分鐘、5分鐘、15分鐘的負載狀況 |
Tasks: 209 total, 1 running, 208 sleeping, 0 stopped, 0 zombie
209 total | 總共有209個進程 |
1 running | 處於運行中的進程有1個 |
208 sleeping | 休眠狀態中的進程有208個 |
0 stopped | stopped狀態中的進程有0個 |
0 zombie | 殭屍進程有0個 |
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
0.0%us | 用戶佔用CPU的百分比 |
0.1%sy | 內核佔用CPU的百分比 |
0.0%ni | 改變過優先級的進程佔用CPU的百分比 |
99.9%id | 空閒CPU百分比 |
0.0%wa | O等待佔用CPU的百分比 |
0.0%hi | 硬中斷(Hardware IRQ)佔用CPU的百分比 |
0.0%si | 軟中斷(Software Interrupts)佔用CPU的百分比 |
0.0%st | (Steal time) 虛擬 CPU 等待實際 CPU 的時間的百分比。 |
Mem: 3922280k total, 1045704k used, 2876576k free, 93988k buffers
3922280k total | 物理內存總量 |
1045704k used | 使用中的內存總量 |
2876576k free | 空閒內存總量 |
93988k buffers | 緩存的內存量 |
Swap: 8339448k total, 0k used, 8339448k free, 645000k cached
8339448k total | 交換區總量 |
0k used | 使用的交換區總量 |
8339448k free | 空閒交換區總量 |
645000k cached | 緩衝的交換區總量 |
對於內存監控,在top裏咱們要時刻監控第五行swap交換分區的used,若是這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。緩存
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 | 進程名稱(命令名/命令行) |
[root@oracledb ~]# top -n 5
[root@oracledb ~]# top -d 5
[root@oracledb ~]# top -c
[root@oracledb ~]# top -p 54
[root@oracledb ~]# top -b
[root@oracledb ~]# top -S
交互式命令鍵位安全
space 當即更新;
c 切換到命令名顯示,或顯示整個命令(包括參數);
f,F 增長顯示字段,或刪除顯示字段;
h,? 顯示有關安全模式及累積模式的幫助信息;
k 提示輸入要殺死的進程ID,目的是用來殺死該進程(默人信號爲15)
i 禁止空閒進程和殭屍進程;
l 切換到顯示負載平均值和正常運行的時間等信息;
m 切換到內存信息,並之內存佔用大小排序;
n 提示顯示的進程數,好比輸入3,就在整屏上顯示3個進程;
o,O 改變顯示字段的順序;
r 把renice 應用到一個進程,提示輸入PID和renice的值;
s 改變兩次刷新時間間隔,以秒爲單位;
t 切換到顯示進程和CPU狀態的信息;
A 按進程生命大小進行排序,最新進程顯示在最前;
M 按內存佔用大小排序,由大到小;
N 以進程ID大小排序,由大到小;
P 按CPU佔用狀況排序,由大到小
S 切換到累積時間模式;
T 按時間/累積時間對任務排序;
W 把當前的配置寫到~/.toprc中;
在top基本視圖中,按鍵盤數字「1」,可監控每一個邏輯CPU的情況服務器
觀察上圖,服務器有4個物理CPU。再按數字鍵1,就會返回到top基本視圖界面。oracle
敲擊鍵盤「b」(打開/關閉加亮效果),top的視圖變化以下:spa
默認進入top時,各進程是按照CPU的佔用量來排序的命令行
敲擊鍵盤「x」(打開/關閉排序列的加亮效果),top的視圖變化以下,能夠看到,top默認的排序列是「%CPU」3d