1. 程式人生 > >Linux中top顯示的資訊詳解

Linux中top顯示的資訊詳解

一.資訊顯示
Linux系統可以通過top命令檢視系統的CPU、記憶體、執行時間、交換分割槽、執行的執行緒等資訊。通過top命令可以有效的發現系統的缺陷出在哪裡。是記憶體不夠、CPU處理能力不夠、IO讀寫過高….

[root@foundation6 docker]# top

top - 21:31:26 up 15:16,  5 users,  load average: 0.61, 0.82, 0.75
Tasks: 240 total,   2 running, 238 sleeping,   0 stopped,   0 zombie
%Cpu(s): 13.7 us,  1.5 sy,  0
.0 ni, 84.2 id, 0.6 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 3775264 total, 250100 free, 2495300 used, 1029864 buff/cache KiB Swap: 4064252 total, 2789544 free, 1274708 used. 527664 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 16507 kiosk 20 0 1935284 201988
10816 R 46.8 5.4 68:11.92 plugin-con+ 15773 kiosk 20 0 1784208 497692 40776 S 4.7 13.2 37:05.32 firefox 408 root 20 0 36940 4116 3920 S 3.0 0.1 4:51.67 systemd-jo+ 3789 kiosk 20 0 747664 14124 4696 S 2.0 0.4 2:49.76 gnome-term+ 2404 root 20 0 439488 106688 84580
S 1.7 2.8 16:08.35 Xorg 2662 kiosk 9 -11 700096 5232 3032 S 1.7 0.1 5:17.25 pulseaudio 21632 kiosk 20 0 812940 167440 30100 S 1.7 4.4 20:15.48 wps 2688 kiosk 20 0 2111764 218776 18580 S 1.3 5.8 20:25.33 gnome-shell 663 root 20 0 399976 3352 2984 S 1.0 0.1 0:46.92 rsyslogd 7349 qemu 20 0 1697464 956932 556 S 0.7 25.3 5:03.80 qemu-kvm 7803 qemu 20 0 1697460 708164 544 S 0.7 18.8 4:16.74 qemu-kvm 18 root 20 0 0 0 0 S 0.3 0.0 0:16.94 rcuos/0 19 root 20 0 0 0 0 S 0.3 0.0 0:18.43 rcuos/1 21 root 20 0 0 0 0 S 0.3 0.0 0:19.62 rcuos/3 671 root 20 0 207984 160 120 S 0.3 0.0 0:01.60 abrt-watch+ 5676 root 20 0 0 0 0 S 0.3 0.0 0:00.28 kworker/u1+ 1 root 20 0 189128 2900 1432 S 0.0 0.1 0:06.11 systemd

top命令的第一行:

top - 21:31:26 up 15:16,  5 users,  load average: 0.61, 0.82, 0.75

依次對應:系統當前時間 up 系統到目前為止i執行的時間, 當前登陸系統的使用者數量, load average後面的三個數字分別表示距離現在一分鐘,五分鐘,十五分鐘的負載情況。
這行資訊與命令uptime顯示的資訊相同
注意:load average資料是每隔5秒鐘檢查一次活躍的程序數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。

top命令的第二行:
Tasks: 240 total,   2 running, 238 sleeping,   0 stopped,   0 zombie

依次對應:tasks表示任務(程序),240 total則表示現在有240個程序,其中處於執行中的有2個,238個在休眠(掛起),stopped狀態即停止的程序數為0,zombie狀態即殭屍的程序數為0個。

top命令的第三行,cpu狀態:

%Cpu(s): 13.7 us,  1.5 sy,  0.0 ni, 84.2 id,  0.6 wa,  0.0 hi,  0.0 si,  0.0 st

依次對應:
us:user 使用者空間佔用cpu的百分比
sy:system 核心空間佔用cpu的百分比
ni:niced 改變過優先順序的程序佔用cpu的百分比
空閒cpu百分比
wa:IO wait IO等待佔用cpu的百分比
hi:Hardware IRQ 硬中斷 佔用cpu的百分比
si:software 軟中斷 佔用cpu的百分比
st:被hypervisor偷去的時間

top命令第四行,記憶體狀態:

KiB Mem :  3775264 total,   250100 free,  2495300 used,  1029864 buff/cache

依次對應:實體記憶體總量(3.7G),空閒記憶體總量(2.5G),使用中的記憶體總量(2.4G),緩衝記憶體量
第四行中使用中的記憶體總量(used)指的是現在系統核心控制的記憶體數,空閒記憶體總量(free)是核心還未納入其管控範圍的數量。納入核心管理的記憶體不見得都在使用中,還包括過去使用過的現在可以被重複利用的記憶體,核心並不把這些可被重新使用的記憶體交還到free中去,因此在linux上free記憶體會越來越少,但不用為此擔心
top命令第五行,swap交換分割槽:

KiB Swap:  4064252 total,  2789544 free,  1274708 used.   527664 avail Mem 

依次對應:交換區總量(4G),空閒交換區總量(2.7G),使用的交換區總量(1.2G),可用交換取總量

對於記憶體監控,在top裡我們要時刻監控第五行swap交換分割槽的used,如果這個數值在不斷的變化,說明核心在不斷進行記憶體和swap的資料交換,這是真正的記憶體不夠用了。

top命令第六行是空行

top命令第七行,各程序的監控:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    

依次對應:
PID — 程序id
USER — 程序所有者
PR — 程序優先順序
NI — nice值。負值表示高優先順序,正值表示低優先順序
VIRT — 程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
RES — 程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
SHR — 共享記憶體大小,單位kb
S — 程序狀態。D=不可中斷的睡眠狀態 R=執行 S=睡眠 T=跟蹤/停止 Z=殭屍程序
%CPU — 上次更新到現在的CPU時間佔用百分比
%MEM — 程序使用的實體記憶體百分比
TIME+ — 程序使用的CPU時間總計,單位1/100秒
COMMAND — 程序名稱(命令名/命令列)

二.互動命令
1.1 ‘h’ 幫助
top命令進入檢視後,鍵入h會顯示如下介面,顯示互動命令的幫助選單
這裡寫圖片描述

1.2 敲ENTER或者 SPACE鍵: 重新整理顯示

1.3 A’: 切換交替顯示模式
top命令檢視下,鍵入‘A‘顯示如下:
這裡寫圖片描述
顯示4個視窗:Def (預設欄位組)
Job (任務欄位組)
Mem (記憶體欄位組)
Usr (使用者欄位組)
四組欄位共有一個獨立的可配置的概括區域和它自己的可配置任務區域。4個視窗中只有一個視窗是當前視窗。當前視窗的名稱顯示在左上方。(注:只有當前窗口才會接受你鍵盤互動命令)
我們可以用’a’和’w’在4個 視窗間切換。’a’移到後一個視窗,’w’移到前一個視窗。用’g’命令你可以輸入一個數字來選擇當前視窗。
在鍵入‘A‘後在鍵入‘a‘的顯示如下:
這裡寫圖片描述

1.4 ‘B’: 觸發粗體顯示
一些重要資訊會以加粗字型顯示。這個命令可以切換粗體顯示

1.5 ‘d’ 或‘s’: 設定顯示的重新整理間隔
當鍵下’d’或’s’時,你將被提示輸入一個值(以秒為單位),它會以設定的值作為重新整理間隔。如果你這裡輸入了6.0,top將會每秒重新整理
這裡寫圖片描述

1.6 ‘l’、‘t’、‘m’: 切換負載、任務、記憶體資訊的顯示

1.7 ‘f’: 欄位管理
用於選擇你想要顯示的欄位。用’*’標記的是已選擇的。
這裡寫圖片描述
上下游標鍵在欄位內導航,左游標鍵可以選擇欄位,回車或右游標鍵確認。

按’<’移動已排序的欄位到左邊,’>’則移動到右邊。
這裡寫圖片描述
1.8 ‘R’: 反向排序

1.9 ‘c’: 觸發命令
切換是否顯示程序啟動時的完整路徑和程式名。
這裡寫圖片描述
鍵入‘c’後顯示:
這裡寫圖片描述

2.0 ‘i’: 空閒任務
切換顯示空閒任務
這裡寫圖片描述