top 命令


一、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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM