天天一個linux命令:top

一、命令簡介

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時間,包括已死的子進程;

四、示例

示例1:top命令說明

image

第一行:任務隊列信息,同 uptime 命令的執行結果,
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 — 任務(進程)
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狀態信息
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交換分區信息
Swap:  8339448k total,        0k used,  8339448k free,   645000k cached
8339448k total 交換區總量
0k used 使用的交換區總量
8339448k free 空閒交換區總量
645000k cached 緩衝的交換區總量

對於內存監控,在top裏咱們要時刻監控第五行swap交換分區的used,若是這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。緩存

第六行,空行。
第七行如下:各進程(任務)的狀態監控

image

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 進程名稱(命令名/命令行)
 
示例2:設置信息更新次數
[root@oracledb ~]# top -n 5
示例3:設置信息更新間隔時間
[root@oracledb ~]# top -d 5
示例4:顯示 完整命令
[root@oracledb ~]# top -c
示例5:顯示指定的進程信息
[root@oracledb ~]# top -p 54
示例6:以批處理模式顯示程序信息
[root@oracledb ~]# top -b
示例7:以累積模式顯示程序信息
[root@oracledb ~]# top -S
 
2、top交互命令

交互式命令鍵位安全

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中;
多U多核CPU監控

在top基本視圖中,按鍵盤數字「1」,可監控每一個邏輯CPU的情況服務器

image

觀察上圖,服務器有4個物理CPU。再按數字鍵1,就會返回到top基本視圖界面。oracle

高亮顯示當前運行進程

敲擊鍵盤「b」(打開/關閉加亮效果),top的視圖變化以下:spa

image

進程字段排序

默認進入top時,各進程是按照CPU的佔用量來排序的命令行

image

  敲擊鍵盤「x」(打開/關閉排序列的加亮效果),top的視圖變化以下,能夠看到,top默認的排序列是「%CPU」3d

image

經過」shift + >」或」shift + <」能夠向右或左改變排序列

image

按c顯示完整命令

image

相關文章
相關標籤/搜索