Linux - top命令監控列表的詳細解析

學習top命令

可看此博文:http://www.javashuo.com/article/p-xhtcknox-my.htmlhtml

 

統計信息區(系統資源信息區)

前五行,即列表上方的五行

 

第一行:輸出系統任務隊列信息

  • 18:46:38:系統當前時間 
  • up 2days 1:54:系統開機後到如今的總運行時間
  • 1 user:當前登陸用戶數
  • load average: 0, 0.01, 0.05:系統負載,系統運行隊列的平均利用率,可認爲是可運行進程的平均數;三個數值分別爲 1分鐘、5分鐘、15分鐘前到如今的平均值;單核CPU中load average的值=1時表示滿負荷狀態,多核CPU中滿負載的load average值爲1*CPU核數

 

第二行:任務進程信息

  • total:系統所有進程的數量
  • running:運行狀態的進程數量
  • sleeping:睡眠狀態的進程數量
  • stoped:中止狀態的進程數量
  • zombie:殭屍進程數量

 

第三行:CPU信息

  • us用戶空間佔用CPU百分比
  • sy內核空間佔用CPU百分比
  • ni:已調整優先級的用戶進程的CPU百分比
  • id空閒CPU百分比,越低說明CPU使用率越高
  • wa:等待IO完成的CPU百分比
  • hi:處理硬件中斷的佔用CPU百分比
  • si:處理軟中斷佔用CPU百分比
  • st:虛擬機佔用CPU百分比

 

第四行:物理內存信息

如下內存單位均爲MB緩存

  • total:物理內存總量
  • free:空閒內存總量
  • used:使用中內存總量
  • buff/cacge:用於內核緩存的內存量

 

第五行:交換區內存信息

  • total:交換區總量
  • free:空閒交換區總量
  • used:使用的交換區總量
  • avail Mem:可用交換區總量

注:若是used不斷在變化, 說明內核在不斷進行內存和swap的數據交換,說明內存真的不夠用了學習

 

問題:內存空間還剩多少空閒呢?spa

答案:空閒內存=空閒內存總量+緩衝內存量 +可用交換區總量命令行

 

進程信息區(進程列表)

  • PID:進程號
  • USER:運行進程的用戶
  • PR:優先級
  • NI:nice值。負值表示高優先級,正值表示低優先級
  • VIRT:進程虛擬內存的大小,只要是進程申請過的內存,即使尚未真正分配物理內存,也會計算在內;VIRT=SWAP+RES
  • RES:進程實際使用的物理內存大小,不包括 Swap 和共享內存
  • SHR:共享內存大小,好比與其餘進程共同使用的共享內存、加載的動態連接庫以及程序的代碼段等
  • S:進程狀態
  • %CPU:CPU 使用率
  • %MEM:進程使用武力內存佔系統總內存的百分比
  • TIME+:上次啓動後至今的總運行時間
  • COMMAND:命令名or命令行

 

內存的重點

  • 虛擬內存一般並不會所有分配給物理內存,從上面的輸出能夠發現每一個進程的虛擬內存都比物理內存大得多
  • 共享內存 SHR 並不必定是共享的,好比程序的代碼段、非共享的動態連接庫
  • SHR 也包括了進程間真正共享的內容,因此在計算多個進程的內存使用時,不要把全部進程的 SHR 直接相加得出結果

 

%CPU

  • 表示進程的 CPU 使用率
  • 是用戶態和內核態 CPU 使用率的總和(us+sy)
  • 包括進程用戶空間使用的 CPU、經過系統調用執行的內核空間 CPU、在就緒隊列等待運行的 CPU
  • 在虛擬環境中, 它還包括了運行虛擬機佔用的 CPU
  • 沒有細分進程的用戶態 CPU 和內核態 CPU

 

進程狀態

  • R=運行狀態
  • S=睡眠狀態
  • D=不可中斷的睡眠狀態
  • T=跟蹤/中止
  • Z=殭屍進程
相關文章
相關標籤/搜索