linux?top命令基本實(shí)戰(zhàn)
前言??????
想要學(xué)好Linux,命令是基本功,企業(yè)中常用的命令大約200多個(gè),不管是寫shell腳本還是管理操作系統(tǒng),最常用的命令必須要牢牢掌握,像我們以前學(xué)乘法口訣一樣,爛熟于心,唯有如此,才能打牢基礎(chǔ)。
一. top命令介紹
top命令的功能是用于實(shí)時(shí)顯示系統(tǒng)運(yùn)行狀態(tài),包含處理器、內(nèi)存、服務(wù)、進(jìn)程等重要資源信息。
我們常常會(huì)把top命令比作是“加強(qiáng)版的Windows任務(wù)管理器”,因?yàn)槌四芸吹匠R?guī)的服務(wù)進(jìn)程信息以外,還能夠?qū)μ幚砥骱蛢?nèi)存的負(fù)載情況一目了然。
使用top命令可以實(shí)時(shí)感知系統(tǒng)全局的運(yùn)行狀態(tài),非常適合作為接手服務(wù)器后執(zhí)行的第一條命令。
在top命令中按f按可以查看顯示的列信息,按對(duì)應(yīng)字母來(lái)開啟/關(guān)閉列,大寫字母表示開啟,小寫字母表示關(guān)閉。帶*號(hào)的是默認(rèn)列
二. 語(yǔ)法格式及常用選項(xiàng)
依據(jù)慣例,拿到一個(gè)命令首先查看 幫助, top 沒(méi)有hlep幫助命令,可以使用man top查看
root@itlaoxin41 ~]# man top [root@itlaoxin41 ~]# man top >> man_top.txt [root@itlaoxin41 ~]# vim man_top.txt
man的幫助手冊(cè)一千多行,我們可以放到一個(gè)文檔中只挑選對(duì)自己有用的,后續(xù)再去看參數(shù)。
命令格式:
top [參數(shù)】
常用選項(xiàng):
-b:以批處理模式操作; -c:顯示完整的進(jìn)程信息; -d:屏幕刷新間隔時(shí)間; -I:忽略失效過(guò)程; -s:保密模式; -S:累積模式; -i<時(shí)間>:設(shè)置間隔時(shí)間; -u<用戶名>:指定用戶名; -p<進(jìn)程號(hào)>:指定進(jìn)程; -n<次數(shù)>:循環(huán)顯示的次數(shù)。
三. 參考案例
3.1 顯示進(jìn)程信息
此時(shí),無(wú)需加任何參數(shù) 直接執(zhí)行top即可
#top
執(zhí)行結(jié)果如下圖:
3.2 顯示完整的進(jìn)程命令
-c 參數(shù) ,與不使用-c參數(shù)做對(duì)比,查看后面的command的變化
#top -c
如果我們要查看前10行,可以使用
top -c |head
但這么查看不會(huì)一直動(dòng)態(tài)顯示,會(huì)自動(dòng)退出。
3.3 以批處理的形式展示
這里會(huì)用到-b的參數(shù)
[root@mufeng ~]# top -b
此時(shí)需要執(zhí)行ctrl +c 才能退出。
3.4 設(shè)置信息更新頻次
-n 參數(shù),用來(lái)設(shè)置信息的更新次數(shù),這里改成5,意味著刷新5次后自己退出。
# top -n 5
-d 參數(shù)是用來(lái)設(shè)置秒數(shù),默認(rèn)為三秒,可以改為5
top -d 5
兩個(gè)參數(shù)也可以一起用:
[root@mufeng ~]# top -d 1 -n 3
表示每一秒鐘刷新一次,一共刷新3次后退出。
3.5 顯示指定進(jìn)程號(hào)的信息
我們先查看到進(jìn)程號(hào),比如 17447
這時(shí)候用 -p 參數(shù)后面直接跟17447即可:
root@mufeng ~]# top -p 17447
3.6 top面板中常用參數(shù)
- 鍵盤數(shù)字1 : 可以查看每個(gè)邏輯cpu的狀況,再按一次1 就返回top的基本界面
- 字母b 可以打開和關(guān)閉正在運(yùn)行的進(jìn)程高亮顯示
- 字母y 可以關(guān)閉或者打開運(yùn)行態(tài)進(jìn)程的加亮效果
下圖是敲擊b之后的效果,要注意如果沒(méi)有正在運(yùn)行的進(jìn)程,可能沒(méi)啥效果:
3.7 其他用法
顯示某個(gè)進(jìn)程的信息
# top -u httpd
顯示線程信息而不是進(jìn)程的信息
# top -H
找出系統(tǒng)中使用CPU最多的進(jìn)程:
運(yùn)行top , 找出使用CPU最多的進(jìn)程 ,按大寫的P,可以按CPU使用率來(lái)排序顯示
四. top的相關(guān)說(shuō)明
4.1 交互命令介紹
在top命令執(zhí)行過(guò)程中可以使用的一些交互命令。這些命令都是單字母的,如果在命令行中使用了-s選項(xiàng), 其中一些命令可能會(huì)被屏蔽。
參數(shù) | 描述 |
---|---|
h | 顯示幫助畫面,給出一些簡(jiǎn)短的命令總結(jié)說(shuō)明; |
k | 終止一個(gè)進(jìn)程; |
i | 忽略閑置和僵死進(jìn)程,這是一個(gè)開關(guān)式命令; |
q | 退出程序; |
r | 重新安排一個(gè)進(jìn)程的優(yōu)先級(jí)別; |
S | 切換到累計(jì)模式; |
s | 改變兩次刷新之間的延遲時(shí)間(單位為s),如果有小數(shù),就換算成ms。輸入0值則系統(tǒng)將不斷刷新,默認(rèn)值是5s; |
f或者F | 從當(dāng)前顯示中添加或者刪除項(xiàng)目; |
o或者O | 改變顯示項(xiàng)目的順序; |
l | 切換顯示平均負(fù)載和啟動(dòng)時(shí)間信息; |
m | 切換顯示內(nèi)存信息; |
t | 切換顯示進(jìn)程和CPU狀態(tài)信息; |
c | 切換顯示命令名稱和完整命令行; |
M | 根據(jù)駐留內(nèi)存大小進(jìn)行排序; |
P | 根據(jù)CPU使用百分比大小進(jìn)行排序; |
T | 根據(jù)時(shí)間/累計(jì)時(shí)間進(jìn)行排序; |
w | 將當(dāng)前設(shè)置寫入~/.toprc文件中。 |
top命令交互
1.基礎(chǔ)操作
- 1:顯示CPU詳細(xì)信息,每核顯示一行
- d / s :修改刷新頻率,單位為秒
- h:可顯示幫助界面
- n:指定進(jìn)程列表顯示行數(shù),默認(rèn)為滿屏行數(shù)
- q:退出top
2.面板隱藏顯示
- l:隱藏/顯示第1行負(fù)載信息;
- t:隱藏/顯示第2~3行CPU信息;
- m:隱藏/顯示第4~5行內(nèi)存信息;
3.進(jìn)程列表排序
- M:根據(jù)駐留內(nèi)存大小進(jìn)行排序;
- P:根據(jù)CPU使用百分比大小進(jìn)行排序;
- T:根據(jù)時(shí)間/累計(jì)時(shí)間進(jìn)行排序;
這里使用頻率最高的是P、T、M
因?yàn)橥ǔJ褂胻op,我們就想看看是哪些進(jìn)程最耗cpu資源、占用的內(nèi)存最多;
注:通過(guò)”shift + >”或”shift + <”可以向右或左改變排序列;
如果只需要查看內(nèi)存:可用free命令。
只查看uptime信息(第一行),可用uptime命令;
詳細(xì)交互指令:h / ? 可顯示幫助界面
Help for Interactive Commands - procps-ng version 3.3.10 Window 1:Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off. Z,B,E,e Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale l,t,m Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info 0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode f,F,X Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify x,y . Toggle highlights: 'x' sort field; 'y' running tasks z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y') u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria n,#,^O . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s) C,... . Toggle scroll coordinates msg for: up,down,left,right,home,end k,r Manipulate tasks: 'k' kill; 'r' renice d or s Set update interval W,Y Write configuration file 'W'; Inspect other output 'Y' q Quit ( commands shown with '.' require a visible task display window ) Press 'h' or '?' for help with Windows, Type 'q' or <Esc> to continue
4.2 top面板每行信息的含義
4.2.1 第一行信息詳解
第一行內(nèi)容和uptime彈出的信息一樣
參數(shù) | 描述 |
---|---|
09:42:57 | 當(dāng)前時(shí)間 |
up 5:38 | 系統(tǒng)運(yùn)行時(shí)間,說(shuō)明服務(wù)器運(yùn)行了5個(gè)小時(shí)38分 |
3users | 當(dāng)前登錄用戶數(shù) |
load average: 0.06, 0.60, 0.48 | 系統(tǒng)負(fù)載,即任務(wù)隊(duì)列的平均長(zhǎng)度。 三個(gè)數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。 |
4.2.2 第二三行信息詳解
此處當(dāng)有多個(gè)CPU時(shí),這些內(nèi)容可能會(huì)超過(guò)兩行
信息 | 描述 |
---|---|
Tasks210 total | 進(jìn)程總數(shù) |
4running | 正在運(yùn)行的進(jìn)程數(shù) |
204 sleeping | 睡眠的進(jìn)程數(shù) |
2 stopped | 停止的進(jìn)程數(shù) |
0 zombie | 僵尸進(jìn)程數(shù) |
Cpu(s): 0.0% us | 系統(tǒng)用戶進(jìn)程使用CPU百分比。 |
4.8% sy | 內(nèi)核中的進(jìn)程占用CPU百分比 |
0.0% ni | 用戶進(jìn)程空間內(nèi)改變過(guò)優(yōu)先級(jí)的進(jìn)程占用CPU百分比 |
94.4% id | 空閑CPU百分比 |
0.0% wa | cpu等待I/0完成的時(shí)間總量,也就是等待輸入輸出的CPU時(shí)間百分比 |
0.0% hi | CPU服務(wù)于硬件中斷所耗費(fèi)的時(shí)間, 也就是硬中斷占的CPU百分比。 |
0.0% si | 軟中斷消耗時(shí)間也就是軟中斷占的CPU百分比。 |
0.0 st | st:虛擬機(jī)hypervisonr偷去的cpu的時(shí)間。比如:物理機(jī)已經(jīng)運(yùn)行了KVM,XEN虛擬機(jī)。KVM虛擬機(jī)也占用物理機(jī)的cpu時(shí)間 |
這里提到了幾個(gè)概念: 硬中斷,軟中斷
硬中斷是由硬件產(chǎn)生的,比如,像磁盤,網(wǎng)卡,鍵盤,時(shí)鐘等。每個(gè)設(shè)備或設(shè)備集都有它自己的IRQ(中斷請(qǐng)求)。
軟中斷: 通常,軟中斷是一些對(duì)I/O的請(qǐng)求。
軟中斷: 通常,軟中斷是一些對(duì)I/O的請(qǐng)求。
這些請(qǐng)求會(huì)調(diào)用內(nèi)核中可以調(diào)度I/O發(fā)生的程序。對(duì)于某些設(shè)備,I/O請(qǐng)求需要被立即處理,而磁盤I/O請(qǐng)求通常可以排隊(duì)并且可以稍后處理。
根據(jù)I/O模型的不同,進(jìn)程或許會(huì)被掛起直到I/O完成,此時(shí)內(nèi)核調(diào)度器就會(huì)選擇另一個(gè)進(jìn)程去運(yùn)行。I/O可以在進(jìn)程之間產(chǎn)生并且調(diào)度過(guò)程通常和磁盤I/O的方式是相同。
4.2.3 第四五行信息詳解
第四五行是內(nèi)存信息
信息 | 描述 |
---|---|
Mem : 1863252 total | 物理內(nèi)存總量 |
72956 free | 空閑內(nèi)存總量 |
786372 used, | 使用的物理內(nèi)存總量 |
1003924 buff/cache | 用作內(nèi)核緩存的內(nèi)存量和free -k是一個(gè)意思 |
Swap: 2017948k total | 交換分區(qū)總量 |
2048756free | 空閑交換分區(qū)總量 |
48392 used | 使用的交換區(qū)總量 |
6960648 avail Mem | 緩沖的交換區(qū)總量 |
這里還要解釋一下緩沖(buffer)和緩存(cache)的區(qū)別:
- 緩存(cache)是在讀取硬盤中的數(shù)據(jù)時(shí),把最常用的數(shù)據(jù)保存在內(nèi)存的緩存區(qū)中,再次讀取該數(shù)據(jù)時(shí),就不去硬盤中讀取了,而在緩存中讀取。
- 緩沖(buffer)是在向硬盤寫入數(shù)據(jù)時(shí),先把數(shù)據(jù)放入緩沖區(qū),然后再一起向硬盤寫入,把分散的寫操作集中進(jìn)行,減少磁盤碎片和硬盤的反復(fù)尋道,從而提高系統(tǒng)性能。
簡(jiǎn)單來(lái)說(shuō),緩存(cache)是用來(lái)加速數(shù)據(jù)從硬盤中"讀取"的,而緩沖(buffer)是用來(lái)加速數(shù)據(jù)"寫入"硬盤的。
4.2.4 第7行進(jìn)程信息
信息 | 含義 |
---|---|
PID | 進(jìn)程ID |
user | 進(jìn)程所有者的用戶名 |
PR | 優(yōu)先級(jí)(由內(nèi)核動(dòng)態(tài)調(diào)整),用戶不能自己調(diào)整 |
NI | 進(jìn)程優(yōu)先級(jí)。 nice值,負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí),用戶可以自己調(diào)整 |
VIRT(virtual memory usage) | 虛擬內(nèi)存,是進(jìn)程正在使用的所有內(nèi)存(ps中標(biāo)為VSZ) |
RES(resident memory usage) | 是進(jìn)程所使用的物理內(nèi)存。實(shí)際實(shí)用內(nèi)存(ps中標(biāo)為RSS) ,常駐內(nèi)存 |
SHR | 共享內(nèi)存 |
S | 進(jìn)程的狀態(tài) |
%CPU | 上次更新到現(xiàn)在的CPU時(shí)間占用百分比 |
%MEM | 進(jìn)程使用的物理內(nèi)存百分比 |
TIME+ | 進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒 |
COMMAND | 命令名/命令行 |
五. 更強(qiáng)大的工具h(yuǎn)top推薦
htop 是一個(gè) Linux 下的交互式的進(jìn)程瀏覽器,可以用來(lái)替換Linux下的top命令。不過(guò)這個(gè)工具再2018年之后就沒(méi)有在更新過(guò)了,目前最新的包是:
與Linux傳統(tǒng)的top相比,htop更加人性化。它可讓用戶交互式操作,支持顏色主題,可橫向或縱向滾動(dòng)瀏覽進(jìn)程列表,并支持鼠標(biāo)操作。
與top相比,htop有以下優(yōu)點(diǎn):
- 可以橫向或縱向滾動(dòng)瀏覽進(jìn)程列表,以便看到所有的進(jìn)程和完整的命令行。
- 在啟動(dòng)上,比top 更快。
- 殺進(jìn)程時(shí)不需要輸入進(jìn)程號(hào)。
- htop 支持鼠標(biāo)操作。
總結(jié)
top是超級(jí)難的命令了,主要原因在于參數(shù)太多,需要把每個(gè)參數(shù)吃透,又得大半天的時(shí)間,你學(xué)會(huì)了嗎?
到此這篇關(guān)于linux top命令 實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)linux top命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux?shell命令行查詢文件中內(nèi)容常用的命令及其用法
在Linux中,查找文件內(nèi)容可以使用多種命令,如grep、find、ack和ripgrep,這些工具各有特點(diǎn),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09淺談ctrl+c,ctrl+d,ctrl+z在linux中的意義
下面小編就為大家?guī)?lái)一篇淺談ctrl+c,ctrl+d,ctrl+z在linux中的意義。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01shell腳本中set?-e選項(xiàng)作用范圍小結(jié)
本文主要介紹了shell腳本中set?-e選項(xiàng)作用范圍小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Shell時(shí)間運(yùn)算及時(shí)間差計(jì)算方法
這篇文章主要介紹了Shell時(shí)間運(yùn)算及時(shí)間差計(jì)算方法,本文講解了時(shí)間時(shí)間加減運(yùn)算以及時(shí)間差計(jì)算方法,需要的朋友可以參考下2015-07-07