前言
top命令經常用來監控linux的系統狀況,是常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用情況
目錄
一、描述
二、top命令常用字段含義
三、top中的子命令
四、總結
五、思維導圖
一、描述
1、top命令
- 經常用來監控Linux的系統狀況
- 是常用的性能分析工具
- 能夠實時顯示系統中各個進程的資源占用情況
2、與ps命令的區別
- ps命令只能顯示進程某一時刻的靜態信息
- top命令則能以實時、動態刷新(默認每3秒刷新一次)的方式顯示進程狀態
- 從而為系統管理員及時、有效地發現系統的缺陷提供方便
二、top命令常用字段含義
1、前6行
- 第一行:正常運行時間行。顯示系統當前時間、系統已運行的時間、當前已登錄的用戶數、1/5/10分鐘前到現在系統平均負載(≤1時屬于正常,若持續≥5表明系統很忙碌)
- 第二行:進程統計行。包括進程的總量,以及正在運行、掛起、暫停、僵尸進程的數量
- 第三行:CPU統計行。包括用戶控件占用CPU的百分比、系統內核控件占用CPU的時間、用戶進程中修改過優先級的進程占用CPU的百分比、空閑CPU百分比、等待輸入輸出CPU時間百分比、服務于硬件終端所耗費CPU時間百分比、服務于軟件終端所耗費CPU時間百分比、st(Steal Time)服務于其他虛擬機所耗費CPU時間百分比
- 第四行:內存統計行。包括物理內存總量,以及已用、空閑、緩沖區內存量
- 第五行:交換分區和緩沖區統計行。包括交換分區總量、已使用交換分區總量、空閑交換分區總量和緩存交換分區總量
- 第六行:顯示的是此后各行的標題
2、PID, USER, PR, NI:與ps命令中的字段含義相同
3、VIRT:virtual memory usage——虛擬內存
- 進程“需要的”虛擬內存大小,包括進程使用的庫、代碼、數據等
- 假如進程申請100M的內存,但實際只使用了10M,那么它會占用100M,而不是實際的使用量
4、RES:resident memory usage——常駐內存
- 進程當前使用的內存大小,但不包括swap out
- 包含其它進程的共享
- 如果申請100M的內存,實際使用10M,它只占用10m,與VIRT相反
- 關于庫占用內存的情況,它只統計加載的庫文件所占內存大小
5、SHR:shared memory——共享內存
- 除了自身進程的共享內存,也包括其它進程的共享內存
- 雖然進程只使用了幾個共享庫的函數,但它包含了整個共享庫的大小
- 計算某個進程所占用的物理內存大小公式:RES - SHR
- swap out后,它將會降下來
6、DATA:
- 數據占用的內存
- 如果top沒有顯示,可以通過f鍵顯示出來
- 真正的該程序要求的數據空間,是真正在運行中要使用的
三、top中的子命令
在top命令使用過程中,可以使用一些交互子命令來定制自己的輸出和其他功能,這些子命令是通過按快捷鍵調用的
- 空格:立即刷新
- T:根據時間、累計時間排序
- m:切換顯示內存信息
- c:切換顯示命令名稱和完整命令行
- W:將當前顯示配置寫入~/.toprc文件中,以便下次啟動top時使用
- N:根據啟動時間進行排序
- f:更改選擇顯示或隱藏列內容
- P:根據CPU使用率,按降序顯示列表
- q:退出top命令
- t:切換顯示進程和CPU狀態信息
- M:根據內存使用率,按降序顯示進程列表
- K:結束進程的運行鍵后在列表上方將出現“PID to kill”提示,在其后輸入指定進程的PID號,按回車鍵后即可結束指定進程的運行
- r:修改進程的優先級
- o:更改顯示列的順序
四、總結
- top命令能夠實時顯示系統中各個進程的資源占用情況
- ps命令只能顯示進程某一時刻的靜態信息
- top命令前五行顯示系統總體狀況
- VIRT:virtual memory usage——虛擬內存
- RES:resident memory usage——常駐內存
- SHR:shared memory——共享內存
- DATA:數據占用的內存
五、思維導圖