一、top 命令界面概覽
二、系統運行時間和平均負載
11:25:19 : 當前系統時間
up 409 days : 系統已經運行了 409 天(在這期間系統沒有重啟過)
3 users : 當前有 3 個用戶登錄了該服務器
load average: 1.06, 1.70, 1.38 : 系統 1 分鍾、5 分鍾、15 分鍾的平均負載
load average 數據是每隔 5 秒鍾(默認)檢查一次活躍的進程數,然后按特定算法計算出的數值.如果這個數值除以邏輯 CPU 的數量后其結果高於 5,那么就代表系統在超負荷運轉了
(這里提一下如何查看邏輯 CPU 的數量)
1、直接查看 cpu 的 processor 的個數
cat /proc/cpuinfo | grep "processor" | sort | uniq
2、top 命令運行的時候按數字鍵 1
三、任務(進程)的運行狀態
系統現在總共有 151 個進程,其中處於運行狀態的有 1 個、150 個在休眠狀態(sleeping)、0 個在停止狀態(stopped)、0 個在僵屍狀態(zombie)
四、CPU 狀態
這里顯示不同模式下所占 CPU 時間百分比,這些不同的 CPU 時間表示
us(user) : 運行(未調整優先級的) 用戶進程所占用的 CPU 時間百分比
sy(system) : 運行內核進程所占用的 CPU 時間百分比
ni(niced) : 運行已調整優先級的用戶進程所占用的 CPU 時間百分比
wa(io wait) : 等待 IO 完成所占用的 CPU 時間百分比
hi(hardware interrupts) : 硬件中斷所占用的 CPU 時間百分比
si(software interrupts) : 軟件中斷所占用的 CPU 時間百分比
st : 這個虛擬機被 hypervisor 偷去的 CPU 時間百分比
1.3% us : 用戶空間所占用 CPU 時間的百分比
0.5% sy : 內核空間占用 CPU 時間的百分比
0.0% ni : 改變過優先級的用戶進程所占用 CPU 時間的百分比
95.9% id : 空閑 CPU 的百分比
0.7% wa : IO 等待所占用 CPU 時間的百分比
0.0% hi : 硬中斷(Hardware Interrupts)所占用 CPU 時間的百分比
0.0% si : 軟中斷(Software Interrupts)所占用 CPU 時間的百分比
1.7% st : 該虛擬機被 hypervisor 偷去的 CPU 時間的百分比
五、內存使用情況
接下來兩行顯示內存使用率,有點像 free 命令,第一行是物理內存使用,第二行是虛擬內存使用(交換空間)
物理內存顯示的信息如下: 全部可用內存、空閑內存、已使用內存、緩沖內存
KiB Mem:
8008636 total : 物理內存總量 8008636 / 1024 = 7820 MiB (單位 KiB,1 MiB = 2^10 KiB)
130524 free : 空閑的物理內存總量 130524 / 1024 = 127 MiB
7706900 used : 已經使用的物理內存總量 7706900 / 1024 = 7526 MiB
171212 buff/cache : 緩沖的物理內存總量 171212 / 1024 = 167 MiB
虛擬內存顯示的信息如下: 全部可用內存、空閑內存、已使用內存、可用內存
KiB Swap:
4063228 total : 交換區內存總量 4063228 / 1024 = 3967 MiB
1016208 free : 交換區空閑內存總量 1016208 / 1024 = 992 MiB
3047020 used : 交換區已使用內存總量 3047020 / 1024 = 2975 MiB
75524 avail Mem : 交換區可用內存總量 75524 / 1024 = 73 MiB
對於第四行中的 used(已使用的內存總量)指的是現在系統內核控制的內存總量、free(空閑內存總量)指的是內核還未納入其管控范圍的數量,納入內核管理的內存不見得都在使用中,還包括過去使用過的現在可以被重復利用的內存,內核並不把這些可被重新使用的內存交還到 free 中,因此 Linux 上 free 內存的數量會越來越少,但是不用為此擔心
如果處於習慣去計算可用內存的總量,這里有一個近似的計算公式 : 第四行的 free + buff/cache = 130524 + 171212 = 301736 / 1024 = 294 MiB
對於內存監控,在 top 命令里我們要時刻監控第 5 行 swap 交換分區的 used,如果這個數值在不斷的變化,說明內核在不斷進行內存和 swap 的數據交換,這是真正的內存不夠用了
六、各進程(任務)的狀態監控
PID : 進程 ID,進程的唯一標識符
USER : 進程所有者的實際用戶名
PR : 進程的調度優先級,這個字段的一些值是 rt(runtime),這意味這這些進程運行在實時態.
NI : 進程的 nice 值(優先級)越小的值意味着越高的優先級.負值表示高優先級,正值表示低優先級
VIRT : 進程使用的虛擬內存,進程使用的虛擬內存總量,單位 kb.VIRT=SWAP+RES
RES : 駐留內存大小,駐留內存是任務使用的非交換物理內存大小.進程使用的、未被換出的物理內存大小,單位 kb.RES=CODE+DATA
SHR : SHR 是進程使用的共享內存.共享內存大小,單位 kb
S : 這個是進程的狀態,它有以下不同的值
- D - 不可中斷的睡眠態。
- R – 運行態
- S – 睡眠態
- T – 被跟蹤或已停止
- Z – 僵屍態
%CPU : 自從上一次更新時到現在任務所使用的 CPU 時間百分比
%MEM : 進程使用的可用物理內存百分比
TIME+ : 任務啟動后到現在所使用的全部 CPU 時間,精確到百分之一秒
COMMAND : 運行進程所使用的命令.進程名稱(命令名/命令行)
還有許多在默認情況下不會顯示的輸出,它們可以顯示進程的頁錯誤、有效組、組 ID 和其他更多的信息
轉載: https://www.cnblogs.com/zhoug2020/p/6336453.html