linux查看服務器cpu性能等(top命令)


參考:https://www.cnblogs.com/zhoug2020/p/6336453.html

輸入top命令(會實時變動

 

1.1 系統運行時間和平均負載:



top命令的頂部顯示與uptime命令相似的輸出
這些字段顯示:
   
  • 當前時間
  • 系統已運行的時間
  • 當前登錄用戶的數量
  • 相應最近5、10和15分鍾內的平均負載。

可以使用'l'命令切換uptime的顯示。


21:45:11 — 當前系統時間
0 days, 4:54 — 系統已經運行了4小時54分鍾(在這期間沒有重啟過)
2 users — 當前有2個用戶登錄系統
load average:0.24, 0.15, 0.19 — load average后面的三個數分別是5分鍾、10分鍾、15分鍾的負載情況。

load average數據是每隔5秒鍾檢查一次活躍的進程數,然后按特定算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。

 

1.2 任務:

Tasks — 任務(進程),系統現在共有144個進程,其中處於運行中的有1個,143個在休眠(sleep),stoped狀態的有0個,zombie狀態(僵屍)的有0個。

1.3 CPU 狀態:

這里顯示不同模式下所占cpu時間百分比,這些不同的cpu時間表示:
  • us, user: 運行(未調整優先級的) 用戶進程的的百分比
  • sy,system: 運行內核進程的CPU百分比
  • ni,niced:運行已調整優先級的用戶進程的CPU百分比
  • id:空閑cpu的百分比
  • wa,IO wait: 用於等待IO完成的CPU百分比
  • hi:硬中斷(Hardware IRQ)占用CPU的百分比
  • si: 軟中斷(Software Interrupts)占用CPU的百分比
  • st:這個虛擬機被hypervisor偷去的CPU時間(譯注:如果當前處於一個hypervisor下的vm,實際上hypervisor也是要消耗一部分CPU處理時間的)。

 

  可以使用't'命令切換顯示/不顯示tasks和cpu。
top命令后,點擊1,可以展開每核的cpu情況

 

 

1.4 內存使用:

接下來兩行顯示內存使用率,有點像'free'命令。第一行是物理內存使用,第二行是虛擬內存使用(交換空間)。

物理內存顯示如下:全部可用內存、已使用內存、空閑內存、緩沖內存。相似地:交換部分顯示的是:全部、已使用、空閑和緩沖交換空間。

內存顯示可以用'm'命令切換。

eg.
509248k total — 物理內存總量(509M) 495964k used — 使用中的內存總量(495M) 13284k free — 空閑內存總量(13M) 25364k buffers — 緩存的內存量 (25M) swap交換分區 492536k total — 交換區總量(492M) 11856k used — 使用的交換區總量(11M) 480680k free — 空閑交換區總量(480M) 202224k cached — 緩沖的交換區總量(202M)

 

這里要說明的是不能用windows的內存概念理解這些數據,如果按windows的方式此台服務器“危矣”:8G的內存總量只剩下530M的可用內存。Linux的內存管理有其特殊性,復雜點需要一本書來說明,這里只是簡單說點和我們傳統概念(windows)的不同。

第四行中使用中的內存總量(used)指的是現在系統內核控制的內存數,空閑內存總量(free)是內核還未納入其管控范圍的數量。納入內核管理的內存不見得都在使用中,還包括過去使用過的現在可以被重復利用的內存,內核並不把這些可被重新使用的內存交還到free中去,因此在linux上free內存會越來越少,但不用為此擔心。

如果出於習慣去計算可用內存數,這里有個近似的計算公式:第四行的free + 第四行的buffers + 第五行的cached,按這個公式此台服務器的可用內存:

13284+25364+202224 = 240M。

對於內存監控,在top里我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。

 
第六行是空行

1.5 各進程(任務)的狀態監控:

PID:進程ID,進程的唯一標識符

USER:進程所有者的實際用戶名。

PR:進程的調度優先級。這個字段的一些值是'rt'。這意味這這些進程運行在實時態。

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和其他更多的信息。

 

 

 


免責聲明!

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



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