了解你服務(wù)器的心情——top命令詳解

top是Linux較為常用的命令,可以監(jiān)控服務(wù)器的CPU、內(nèi)存、進(jìn)程的運(yùn)行情況,話不多說,直接操作。

輸入top即可啟動(dòng):

top運(yùn)行界面

下面我們就來逐一介紹top向我們展示的內(nèi)容。

第一行:系統(tǒng)概況

top - 19:39:14 up 20 days,  7:48,  1 user,  load average: 0.00, 0.01, 0.05
  • 19:39:14 up 20 days:系統(tǒng)運(yùn)行時(shí)間
  • 1 user:用戶數(shù)
  • load average: 0.00, 0.01, 0.05:1分鐘、5分鐘、15分鐘的平均負(fù)載

第二行:進(jìn)程概況

Tasks:  69 total,   2 running,  67 sleeping,   0 stopped,   0 zombie
  • 69 total:總進(jìn)程數(shù)
  • 2 running:運(yùn)行態(tài)進(jìn)程數(shù)
  • 67 sleeping:睡眠態(tài)進(jìn)程數(shù)
  • 0 stopped:停止態(tài)進(jìn)程數(shù)
  • 0 zombie:僵尸態(tài)進(jìn)程數(shù)

第三行:CPU概況

%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
  • us:用戶進(jìn)程CPU使用占比
  • sy:系統(tǒng)進(jìn)程CPU使用占比
  • ni:用戶進(jìn)程中改變了優(yōu)先級(jí)的進(jìn)程CPU使用占比
  • id:空閑CPU占比
  • wa:等待IO的CPU時(shí)間占比
  • hi:硬中斷占用CPU百分比
  • si:軟終端占用CPU百分比

默認(rèn)情況下顯示的是所有CPU的平均值,如果想看每個(gè)CPU具體值,則按下『1』即可:

%Cpu0  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st

第四五行:內(nèi)存概況

在Linux中,內(nèi)存一共分為兩塊:物理內(nèi)存 和 交換區(qū)。
物理內(nèi)存是真正的內(nèi)存,而內(nèi)存資源畢竟有限,因此當(dāng)物理內(nèi)存不夠的時(shí)候,根據(jù)LRU置換算法,那些很長(zhǎng)時(shí)間沒被使用的數(shù)據(jù)將會(huì)被存入交換區(qū)。交換區(qū)其實(shí)是硬盤,并非內(nèi)存。當(dāng)交換區(qū)存在數(shù)據(jù)時(shí)說明物理內(nèi)存不夠了。

KiB Mem :  1883724 total,   300584 free,   646088 used,   937052 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1062956 avail Mem
  • Mem 1883724 total:物理內(nèi)存的總量
  • Mem 300584 free:物理內(nèi)存的空閑量
  • Mem 646088 used:物理內(nèi)存使用量
  • Mem 937052 buff/cache:物理內(nèi)存內(nèi)核緩存使用量
  • Swap 0 total:交換區(qū)總量
  • Swap 0 free:交換區(qū)空閑量
  • Swap 0 used:交換區(qū)使用量
  • Swap 1062956 avail Mem:虛擬內(nèi)存總量

PS:buff/cache雖然占用物理內(nèi)存,但當(dāng)內(nèi)存不夠時(shí)也可以直接使用,因此物理內(nèi)存的可使用空間為:free + buff/cache。

第六行:進(jìn)程詳情

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
1784 root      20   0 2072440  73204   8768 S  0.7  3.9 108:58.75 java
1182 root      20   0   46540   2624   1988 S  0.3  0.1  11:06.20 AliYunDunUpdate
  • PID:進(jìn)程ID
  • USER:進(jìn)程所有者
  • RES:進(jìn)程所占物理內(nèi)存大小(kb)
  • SHR:進(jìn)程所占共享內(nèi)存大?。╧b)
  • VIRT:進(jìn)程所占虛擬內(nèi)存大?。???
  • %CPU:CPU占用百分比
  • %MEM:物理內(nèi)存占用百分比
  • PR:進(jìn)程優(yōu)先級(jí)
  • NI:nice值
  • TIME+:上次更新到現(xiàn)在進(jìn)程使用的CPU時(shí)間總計(jì)
  • COMMAND:?jiǎn)?dòng)該進(jìn)程的命令

小技巧

1. 間隔刷新

進(jìn)入top后按下d,即可設(shè)置間隔刷新時(shí)間,默認(rèn)是3秒。

2. 添加進(jìn)程監(jiān)控字段

進(jìn)入top后按下f,即可添加/減少需要監(jiān)控的進(jìn)程信息。

* PID     = Process Id             vMn     = Minor Faults delta
* USER    = Effective User Name    USED    = Res+Swap Size (KiB)
* PR      = Priority               nsIPC   = IPC namespace Inode
* NI      = Nice Value             nsMNT   = MNT namespace Inode
* VIRT    = Virtual Image (KiB)    nsNET   = NET namespace Inode
* RES     = Resident Size (KiB)    nsPID   = PID namespace Inode
* SHR     = Shared Memory (KiB)    nsUSER  = USER namespace Inode
* S       = Process Status         nsUTS   = UTS namespace Inode
* %CPU    = CPU Usage
* %MEM    = Memory Usage (RES)
* TIME+   = CPU Time, hundredths
* COMMAND = Command Name/Line
  PPID    = Parent Process pid
  UID     = Effective User Id
  RUID    = Real User Id
  RUSER   = Real User Name
  SUID    = Saved User Id
  SUSER   = Saved User Name
  GID     = Group Id
  GROUP   = Group Name
  PGRP    = Process Group Id

前面有*的說明已經(jīng)顯示了。

3. 保存設(shè)置

對(duì)top進(jìn)行設(shè)置后,默認(rèn)是不保存配置的,只有按了大寫的W后才會(huì)保存。

4. 監(jiān)控結(jié)果輸出到文件

top -d 1 -n 3 > top.log
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容