?文章來源地址http://www.zghlxwxcb.cn/news/detail-719501.html
1、命令簡介
top提供運行系統(tǒng)的動態(tài)實時視圖。它可以顯示系統(tǒng)摘要信息以及當(dāng)前由Linux內(nèi)核管理的任務(wù)列表。所顯示的系統(tǒng)摘要信息的類型以及為任務(wù)顯示的信息的類型、順序和大小都是用戶可配置的,并且可以在重新啟動期間使配置持久。
?
2、使用方法
top -hv | -bcEHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]
小插曲:如果只想查看某些進程的top信息,按進程名篩選,可以使用以下命令:
## 使用top刷新所有帶'rcu'的進程
top -p `pgrep -d ',' -f rcu`
?
3、命令行參數(shù)
## 常用選項
-p pid ## 只顯示pid進程及其子進程的信息。監(jiān)視多個則為 -p N1,N2,N3...
-u user ## 只顯示user用戶啟動的進程。
-d secs ## 設(shè)置顯示更新時間間隔為secs秒。默認為3秒。當(dāng)然用戶可以使用s交互命令來改變之。
-1 ## 列出所有CPU的摘要信息。
-H ## 多線程模式,按線程劃分每行。當(dāng)然用戶可以使用H交互命令來改變之。
-n count ## 設(shè)置顯示次數(shù)為count次,然后退出。
-c ## 顯示完整的命令行,而不截斷。
-q ## 該選項將使top沒有任何延遲的進行刷新。如果調(diào)用程序有超級用戶權(quán)限,那么top將以盡可能高的優(yōu)先級運行。
-S ## 累積模式,連續(xù)顯示多次更新結(jié)果。
-s ## 安全模式,這將去除交互命令所帶來的潛在危險。
-i ## 忽略空閑和僵死進程。
-b ## 以批處理模式操作,啟動后不顯示交互命令提示符,方便將結(jié)果輸出到其它程序或文件。
?
4、顯示摘要
top - 16:29:43 up 2:35, 7 users, load average: 0.95, 0.88, 0.70
Tasks: 315 total, 3 running, 310 sleeping, 0 stopped, 2 zombie
%Cpu0 : 2.4 us, 1.4 sy, 0.0 ni, 95.8 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15847.3 total, 12950.4 free, 1328.2 used, 1568.7 buff/cache
MiB Swap: 8012.0 total, 8012.0 free, 0.0 used. 14311.7 avail Mem
## 1、運行時間與負載均衡
## 16:29:43: 系統(tǒng)時間
## up: 運行時間
## users: 當(dāng)前登錄用戶數(shù)量
## load average: 5分鐘、10分鐘、15分鐘負載平均值。load average數(shù)據(jù)是每隔5秒鐘檢查一次活躍的進程數(shù),然后按特定算法計算出的數(shù)值。如果這個數(shù)除以邏輯CPU的數(shù)量,結(jié)果高于5的時候就表明系統(tǒng)在超負荷運轉(zhuǎn)了。
## 2、任務(wù)狀態(tài)與CPU狀態(tài),在多核環(huán)境中,CPU狀態(tài)可劃分多行
## Tasks: 總進程數(shù)或總線程數(shù),取決于是否開啟線程模式
## running: 運行進程數(shù)
## sleeping:休眠進程數(shù)
## stopped: 停止進程數(shù)
## zombie: 僵尸進程數(shù)
## us: user,用戶空間占用CPU的百分比
## sy: system,內(nèi)核空間百分比
## ni: nice,改變過優(yōu)先級的進程占用CPU的百分比
## id: idle,空閑百分比
## wa: IO-wait,IO等待百分比
## hi: 硬中斷百分比
## si: 軟中斷百分比
## st: 當(dāng)前虛擬機中的cpu周期被物理機中的實例偷走的比例。
## 3、內(nèi)存使用情況,默認Mb為單位,交互命令按E切換單位,交換空間使用變動證明內(nèi)存已不足使用。
## total: 總內(nèi)存
## free: 剩余內(nèi)存
## used: 已用內(nèi)存
## buff/cache: 緩沖與緩存
?
5、進程列表字段
?
字段 | 說明 |
---|---|
PID | 進程id |
USER | 進程所有者 |
PR | 動態(tài)優(yōu)先級 |
NI | nice值,靜態(tài)優(yōu)先級 |
VIRT (Virtual Memory Size,KB) | 進程使用的虛擬內(nèi)存大小,包括進程的代碼、數(shù)據(jù)、共享庫和映射文件等。VIRT=SWAP+RES |
RES (Resident Memory Size,KB) | 翻譯是“駐留集大小”,實際是指進程占用的物理內(nèi)存大小。RES=CODE+DATA |
SHR | 共享內(nèi)存大小,單位kb |
S | 進程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運行 S=睡眠 T=停止 t=調(diào)試跟蹤 Z=僵尸進程 |
%CPU | 上次更新到現(xiàn)在的CPU時間占用百分比 |
%MEM | 進程使用的物理內(nèi)存百分比 |
TIME+ | 進程使用的CPU時間總計,單位1/100秒 |
COMMAND | 進程名稱(命令名/命令行) |
? | |
PPID | Parent Process pid,父進程id |
UID | Effective User Id,有效用戶id,進程的創(chuàng)建者 |
RUID | Real User Id,實際用戶id,當(dāng)前登錄者 |
RUSER | Real User Name |
SUID | Saved User Id,設(shè)置用戶id,用于對外權(quán)限的開放,跟文件綁定。 |
SUSER | Saved User Name |
GID | Group Id |
GROUP | Group Name |
PGRP | Process Group Id |
TTY | Controlling Tty,控制終端 |
TPGID | Tty Process Grp Id |
SID | Session Id |
nTH | Number of Threads,線程數(shù)量 |
P | Last Used Cpu (SMP) |
TIME | CPU Time,累積CPU用時 |
SWAP | Swapped Size (KiB),交換空間大小 |
CODE | Code Size (KiB),代碼段所占內(nèi)存大小 |
DATA | Data + Stack Size (KiB),數(shù)據(jù)段所占內(nèi)存大小 |
nMaj | Major Page Faults |
nMin | Minor Page Faults |
nDRT | Dirty Pages Count |
WCHAN | Sleeping in Function |
Flags | Task Flags <sched.h>,任務(wù)標志 |
CGROUPS | Control Groups |
SUPGIDS | Supp Groups IDs |
SUPGRPS | Supp Groups Names |
TGID | Thread Group Id |
ENVIRON | Environment variables,進程環(huán)境變量 |
vMj | Major Faults delta |
vMn | Minor Faults delta |
USED | Res+Swap Size (KiB),已使用的非交換物理內(nèi)存 |
nsIPC | IPC namespace Inode |
nsMNT | MNT namespace Inode |
nsNET | NET namespace Inode |
nsPID | PID namespace Inode |
nsUSER | USER namespace Inode |
nsUTS | UTS namespace Inode |
詳解
PR: Priority 動態(tài)優(yōu)先級
1、priority的值在內(nèi)核的調(diào)度器上表現(xiàn)是會變化的,所以也叫做動態(tài)優(yōu)先級,是進程內(nèi)核態(tài)的一個概念
2、范圍從0到139。值越小,優(yōu)先級越高,越容易被調(diào)度器執(zhí)行。0-99,實時進程(rt)優(yōu)先級范圍。100-139,非實時進程
3、取值rt表示實時進程NI: Nice Value 優(yōu)先值、靜態(tài)優(yōu)先級
1、nice值也叫做靜態(tài)優(yōu)先級,是一個進程用戶態(tài)的一個概念,除非我們用renice去改它,否則它是不變的。通過NI來影響PR
2、取值范圍是-20至19,一共40個級別。負值表示高優(yōu)先級,正值表示低優(yōu)先級
3、設(shè)置nice值的命令有:nice -n 10 bash ## 啟動并設(shè)置nice值
、renice 10 -p pid ## 重新調(diào)整進程nice值
?
VIRT:virtual memory usage 虛擬內(nèi)存
1、進程“需要的”虛擬內(nèi)存大小,包括進程使用的庫、代碼、數(shù)據(jù)等
2、假如進程申請100m的內(nèi)存,但實際只使用了10m,那么它會增長100m,而不是實際的使用量
?
RES:resident memory usage 常駐內(nèi)存
1、進程當(dāng)前使用的內(nèi)存大小,但不包括swap out
2、包含其他進程的共享
3、如果申請100m的內(nèi)存,實際使用10m,它只增長10m,與VIRT相反
4、關(guān)于庫占用內(nèi)存的情況,它只統(tǒng)計加載的庫文件所占內(nèi)存大小
?
SHR:shared memory 共享內(nèi)存
1、除了自身進程的共享內(nèi)存,也包括其他進程的共享內(nèi)存
2、雖然進程只使用了幾個共享庫的函數(shù),但它包含了整個共享庫的大小
3、計算某個進程所占的物理內(nèi)存大小公式:RES – SHR
4、swap out后,它將會降下來
?
DATA
1、真正的該程序要求的數(shù)據(jù)空間,是真正在運行中要使用的。
?
6、交互命令
a、全局命令
全局交互命令始終可以在全屏模式和交替顯示模式下使用。但是,在安全模式下運行時,這些交互命令中有些是不可用的。如果想知道是否進入了安全模式,請求幫助并查看第二行的系統(tǒng)摘要。
命令 | 說明 |
---|---|
Enter | Space | 刷新顯示 |
? | h | 幫助 |
= | 移除顯示哪些任務(wù)的限制。 |
0 | 切換是否顯示0值 |
A | 選擇顯示開關(guān),可以分開顯示每個CPU的視圖 |
B | 粗體切換 |
* d | s | 改變延遲時間間隔 |
E | Extend-Memory-Scale in Summary Area,切換摘要區(qū)域內(nèi)存顯示單位 |
e | Extend-Memory-Scale in Task Windows,切換任務(wù)區(qū)別內(nèi)存顯示單位 |
g | Choose-Another-Window,選擇其它顯示窗口,在用A后才能使用 |
H | Threads-mode,多線程顯示開關(guān) |
I | Irix/Solaris-Mode,在Solaris模式下操作時,任務(wù)的CPU使用量將除以CPU總數(shù) |
* k | Kill-a-task,輸入PID后發(fā)送kill信號 |
q | 退出 |
* r | Renice-a-Task,調(diào)整任務(wù)nice值,要求輸入PID |
W | 寫入配置文件,再次啟動top保存當(dāng)前設(shè)置。 |
X | Extra-Fixed-Width,將一些字段的顯示寬度固定 |
Y | Inspect-Other-Output |
Z | Change-Color-Mapping,改變當(dāng)前窗口顏色映射 |
* | 以星號顯示的命令在安全模式中不可用,也不會顯示在第1級幫助屏幕上。 |
示例:按A打開多個CPU窗口,按g選擇其它窗口,按Z改變對應(yīng)窗口顏色,按esc回到主界面
?
b、摘要區(qū)域命令
摘要區(qū)域交互命令始終可以在全屏模式和選擇顯示模式下使用。它們會影響顯示的起始行,并將決定消息和提示的位置。這些命令總是只影響當(dāng)前窗口。
命令 | 說明 |
---|---|
C | Show-scroll-coordinates,顯示流動坐標軸,y表示多少行,x表示多少列 |
l | 切換負載平均/正常運行時間顯示 |
t | 切換內(nèi)存/交換使用顯示 |
m | 切換任務(wù)/CPU狀態(tài)顯示 |
1 | 切換單獨CPU狀態(tài)顯示 |
2 | NUMA-Nodes/Cpu-Summary toggle |
3 | Expand-NUMA-Node |
示例:按l關(guān)閉負載均衡顯示,按1顯示所有CPU狀態(tài),按m關(guān)閉內(nèi)存信息顯示,按C顯示坐標信息
?
c、任務(wù)區(qū)域命令
任務(wù)區(qū)域交互命令總是在全屏模式下可用。如果當(dāng)前窗口的任務(wù)顯示已關(guān)閉,則交互命令是不可用的。
命令 | 說明 |
---|---|
任務(wù)窗口的外觀 | |
J | Justify-Numeric-Columns toggle,對齊數(shù)字列 |
j | Justify-Character-Columns toggle,對齊字符列 |
b | 粗體切換 |
x | 列高亮切換,某些終端程序高亮不明顯。 |
y | 行高亮切換 |
z | 多色/單色切換 |
任務(wù)窗口內(nèi)容 | |
c | 命令行/程序名稱切換 |
f | F | 字段選擇或排序字段 |
o | O | Other-Filtering |
S | 累積時間模式開關(guān) |
u | U | 只顯示特定用戶 |
V | Forest-View-Mode toggle,森林視圖模式,根據(jù)父進程顯示進程樹 |
任務(wù)窗口大小 | |
i | Idle-Process,是否顯示空閑進程 |
n | # | Set-Maximum-Tasks,設(shè)置顯示最大任務(wù)數(shù) |
任務(wù)窗口排序 | |
< | 左移排序字段,將排序列移到左側(cè),除非當(dāng)前排序字段是要顯示的第一個字段。 |
> | 右移排序字段,將排序列移到右側(cè),除非當(dāng)前排序字段是顯示的最后一個字段。 |
f | F | Fields-Management,顯示一個單獨的屏幕選擇字段 |
R | Reverse/Normal-Sort-Field,反向/正常排序字段切換 |
可選窗口模式 | |
- | _ | 顯示或者隱藏窗口 |
* = | + | 均衡化_(再平衡)窗口 |
* A | 可選窗口模式開關(guān) |
* a | w | 窗口上下選擇 |
* G | 選擇另一個窗口/字段組 |
* g | 更改窗口/字段組名稱 |
* | 使用星號的交互式命令已經(jīng)超出了可選窗口模式。 |
示例:按f選擇PID,按s選擇為排序字段,按esc回到主界面,按R讓排序倒序
?
d、顏色映射
按Z時,將顯示一個單獨的屏幕。該屏幕可以用來在當(dāng)前窗口或所有四個窗口中更改顏色,然后再按esc返回到頂部顯示。
命令 | 說明 |
---|---|
應(yīng)用并退出 | |
q | 放棄當(dāng)前的變化并退出 |
示例:按Z選擇顏色映射為紅色
?
e、可選顯示窗口
摘要區(qū)域交互命令始終可以在全屏模式和選擇顯示模式下使用。它們會影響顯示的起始行,并將決定消息和提示的位置。這些命令總是只影響當(dāng)前窗口。
命令 | 說明 |
---|---|
- | _ | 顯示或者隱藏窗口 |
* = | + | 均衡化_(再平衡)窗口 |
* A | 可選窗口模式開關(guān) |
* a | w | 窗口上下選擇 |
* G | 選擇另一個窗口/字段組 |
* g | 更改窗口/字段組名稱 |
* | 使用星號的交互式命令已經(jīng)超出了可選窗口模式。 |
示例:按A開啟可選窗口,按a切換窗口,按-隱藏2、3窗口
文章來源:http://www.zghlxwxcb.cn/news/detail-719501.html
?
7、配置文件
a、系統(tǒng)配置文件
## 系統(tǒng)配置文件不是由top創(chuàng)建的。相反,您可以手動創(chuàng)建這個文件,并將其放在/etc目錄中。
cat /etc/toprc
s # line 1: secure mode switch
5.0 # line 2: delay interval in seconds
b、個人配置文件
## 這個文件被寫成’$HOME/.your-name-4-top’+’rc’。
## 使用‘W’交互式命令創(chuàng)建或更新它。如果$HOME變量不存在,top將根據(jù)權(quán)限嘗試將個人配置文件寫入當(dāng)前目錄。
cat `$HOME/.your-name-4-top' + `rc'
global # line 1: the program name/alias notation
" # line 2: id,altscr,irixps,delay,curwin
per ea # line a: winname,fieldscur
window # line b: winflags,sortindx,maxtasks,graph modes
" # line c: summclr,msgsclr,headclr,taskclr
global # line 15: additional miscellaneous settings
" # any remaining lines are devoted to the
" # generalized inspect provisions
" # discussed below
到了這里,關(guān)于Linux 命令(9)—— top的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!