Linux使用top命令過濾排序的方法詳解
你希望詳細掌握CentOS 7系統(tǒng)中top命令的使用方法,特別是其中的過濾和排序功能,以此精準監(jiān)控系統(tǒng)進程的資源占用情況。
top是CentOS 7中最核心的系統(tǒng)監(jiān)控工具,能實時顯示進程的CPU、內(nèi)存等資源占用,下面從基礎(chǔ)界面、排序、過濾三個維度詳解,重點聚焦你關(guān)注的排序和過濾功能。
一、先熟悉top基礎(chǔ)界面
執(zhí)行top命令后,界面分為兩部分:
top - 10:23:45 up 7 days, 2:10, 1 user, load average: 0.10, 0.05, 0.01 Tasks: 120 total, 1 running, 119 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8010240 total, 1234560 free, 2345670 used, 4429910 buff/cache KiB Swap: 8388604 total, 8388604 free, 0 used. 5234560 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 123456 12345 6789 S 5.0 0.2 0:10.23 nginx 5678 mysql 20 0 987654 876543 12345 S 2.0 10.9 1:20.34 mysqld
- 上部(系統(tǒng)概覽):負載、進程總數(shù)、CPU/內(nèi)存/交換分區(qū)使用率。
- 下部(進程列表):PID(進程ID)、USER(所屬用戶)、%CPU(CPU使用率)、%MEM(內(nèi)存使用率)、COMMAND(進程名)等核心列。
二、top排序功能(核心)
排序是top最常用的功能,分為交互模式排序(運行中操作)和命令行參數(shù)排序(啟動時指定),新手優(yōu)先掌握交互模式。
1. 交互模式快速排序(運行top后操作)
運行top后,直接按以下快捷鍵即可實時排序,無需重啟命令:
| 快捷鍵 | 排序規(guī)則 | 適用場景 |
|---|---|---|
| P | 按CPU使用率降序(默認) | 找CPU占用最高的進程 |
| M | 按內(nèi)存使用率降序 | 找內(nèi)存占用最高的進程(最常用) |
| T | 按累計CPU時間(TIME+) 降序 | 找長期占用CPU的進程 |
| N | 按PID降序 | 按進程ID排序 |
| R | 反轉(zhuǎn)當前排序(升序↔降序) | 想看占用最低的進程時使用 |
| < / > | 切換排序列 | 自定義按其他列(如USER)排序 |
示例:
- 運行
top后按M,進程會立刻按內(nèi)存使用率從高到低排列,能一眼定位內(nèi)存“大戶”(如mysql、java進程); - 按
R后,排序反轉(zhuǎn),變成內(nèi)存使用率從低到高排列; - 按
>鍵,可切換到按TIME+列排序,再按R變成升序,能找到運行時間最短的進程。
2. 命令行參數(shù)排序(啟動時指定)
如果想啟動top就按指定列排序,用-o參數(shù)(CentOS 7的top原生支持),格式:
top -o 列名
常用列名:%CPU、%MEM、PID、TIME+、USER(列名需和top界面顯示一致)。
示例:
# 啟動top時直接按內(nèi)存使用率降序排序 top -o %MEM # 啟動top時按PID升序排序(加負號表示升序) top -o -PID # 啟動top時按累計CPU時間降序排序 top -o TIME+
三、top過濾功能(精準篩選進程)
過濾能只顯示符合條件的進程,避免無關(guān)進程干擾,分為交互模式過濾和命令行參數(shù)過濾。
1. 交互模式過濾(運行top后操作)
(1) 按用戶過濾(最常用):按u鍵
操作步驟:
- 運行
top; - 按
u鍵,界面底部提示Which user (blank for all); - 輸入要過濾的用戶名(如
root、nginx、mysql),回車;- 若直接回車,取消用戶過濾,顯示所有用戶進程。
示例:
按u → 輸入nginx → 回車,僅顯示nginx用戶的所有進程,快速排查nginx進程的資源占用。
(2) 按進程名/自定義條件過濾:按o鍵
操作步驟:
- 運行
top; - 按
o鍵,界面提示Add filter expression; - 輸入過濾條件(格式:列名=值/列名>值,支持通配符
*); - 回車生效。
常用過濾條件示例:
COMMAND=nginx:只顯示進程名包含nginx的進程;%CPU>5:只顯示CPU使用率超過5%的進程;%MEM>2:只顯示內(nèi)存使用率超過2%的進程;USER=mysql:等效于按u鍵過濾mysql用戶(多一種方式)。
(3) 清除所有過濾條件:按=鍵
如果設(shè)置了多個過濾條件,想一鍵恢復(fù)顯示所有進程,按=鍵即可。
2. 命令行參數(shù)過濾(啟動時指定)
適合腳本/批量監(jiān)控場景,啟動top時直接指定過濾條件:
(1) 按用戶過濾:-u參數(shù)
格式:top -u 用戶名/UID
# 只顯示nginx用戶的進程 top -u nginx # 只顯示UID為1000的用戶進程(UID可通過id命令查詢:id 用戶名) top -u 1000
(2) 按PID過濾:-p參數(shù)
格式:top -p PID1,PID2,PID3(多個PID用逗號分隔,最多20個)
# 只監(jiān)控PID為1234(nginx主進程)和5678(mysql進程)的進程 top -p 1234,5678
四、實用補充技巧
- 調(diào)整刷新頻率:默認3秒刷新一次,按
s鍵修改(如輸入1則1秒刷新),或啟動時用top -d 1; - 顯示單CPU核心使用率:按數(shù)字
1,從“總CPU使用率”切換為“每個核心的使用率”; - 只顯示活躍進程:按
i鍵,隱藏閑置(sleeping)進程,減少干擾; - 退出top:按
q鍵(或Ctrl+C)。
總結(jié)
- 排序核心:交互模式按
P/M/T快速按CPU/內(nèi)存/累計時間排序,啟動時用top -o 列名指定排序列(加負號為升序); - 過濾核心:按
u過濾用戶、按o設(shè)置自定義過濾條件(如COMMAND=nginx),啟動時用-u(用戶)/-p(PID)過濾; - 實用技巧:按
1看單CPU核心使用率,按=清除過濾,按q退出top。
以上就是Linux使用top命令過濾排序的方法詳解的詳細內(nèi)容,更多關(guān)于Linux top命令過濾排序的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux常用命令之chmod修改文件權(quán)限777和754
這篇文章主要介紹了Linux常用命令之chmod修改文件權(quán)限777和754,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
在 CentOS 8/RHEL 8 上安裝和使用 Cockpit的方法
Cockpit 是一個基于 Web 的服務(wù)器管理工具,可用于 CentOS 和 RHEL 系統(tǒng)。最近發(fā)布的 CentOS 8 和 RHEL 8,其中 cockpit 是默認的服務(wù)器管理工具。這篇文章主要介紹了在 CentOS 8/RHEL 8 上安裝和使用 Cockpit的方法,需要的朋友可以參考下2019-10-10
Ubuntu18.04安裝opencv 3.2.0的解決方法
這篇文章主要介紹了Ubuntu18.04安裝opencv 3.2.0的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-10-10

