系統監視器把常用的系統指令輸出直接呈現在頁面上,讓您不必登入終端機就能即時掌握伺服器的運作狀況。當服務回應變慢、負載異常升高,或需要確認某個程序是否還在跑、某個埠是否被佔用時,這一頁提供最直接的證據。它同時提供對異常程序送出終止訊號的功能,是排查問題時的即時工具。
什麼時候會用到這一頁:
- 伺服器回應變慢,想知道是哪個程序吃掉 CPU 或記憶體
- 某個服務明明有問題,卻不確定它「到底還在不在」
- 某個埠被佔用,導致服務起不來
- 想知道目前有哪些網路連線(誰連進來、連到哪裡)
- 需要看目前實際套用的防火牆規則(而不只是設定畫面)
- 要確認磁碟健康狀態(SMART)或硬體規格
- 需要強制結束一個卡住、無法正常停止的程序
分頁與更新頻率
每個分頁對應一種指令輸出。畫面上方的頁籤由左至右為 top、ps、netstat、ifconfig、firewall、iftop、iotop、disk、hwlist、about。
只有目前開啟的分頁會持續更新,其他分頁不會在背景耗用資源——這是刻意的設計,避免這一頁本身成為負擔。各分頁的更新頻率如下:
| 分頁 | 顯示內容 | 更新頻率 |
|---|---|---|
top |
即時程序與資源使用狀況 | 約 3 秒 |
ps |
完整程序清單 | 約 5 秒 |
netstat |
網路連線與監聽埠 | 約 5 秒 |
ifconfig |
網路介面設定 | 約 5 秒 |
firewall |
目前套用的防火牆規則 | 約 5 秒 |
iftop |
即時網路流量 | 約 12 秒(每次取樣 5 秒) |
iotop |
磁碟 I/O 即時統計 | 約 12 秒(每次取樣 6 秒) |
disk |
磁碟使用量與健康狀態 | 約 30 秒 |
hwlist |
硬體與核心模組清單 | 約 30 秒 |
about |
本頁功能說明 | 靜態,不更新 |
iftop 與 iotop 需要先取樣才能算出流量,所以剛切到這兩個分頁時會顯示「樣本採集中…」,請稍候數秒。進入本頁時系統會在約 1 秒後先在背景取樣一次,因此正常情況下切過去就能直接看到結果,不必再等。
disk 與 hwlist 的內容變動不大,所以更新間隔較長(30 秒),這是刻意的設計,不是當掉。
各分頁逐一說明
top:整體負載與即時程序
對應指令為 top 的單次快照(批次模式),是「誰把機器吃滿」的第一站。畫面上方是整體狀況,下方是程序清單。
上半部(整體狀況)要看的四個地方:
- load average(系統負載):三個數字分別是最近 1 分鐘/5 分鐘/15 分鐘的平均負載。判讀方式是與 CPU 核心數比較——例如 4 核心的機器,負載長期高於 4 就代表工作量已超出處理能力;短暫衝高但 15 分鐘的值正常,通常只是瞬間尖峰
- Tasks:程序總數,以及 running/sleeping/stopped/zombie 各有多少。zombie 數量持續增加代表有程序的子程序沒有被回收,值得追查
- %Cpu(s):CPU 時間的分配。
us=使用者程序、sy=系統核心、wa=等待磁碟 I/O、id=閒置。wa偏高(例如超過 20%)通常代表磁碟是瓶頸,這時請接著看iotop - MiB Mem / MiB Swap:實體記憶體與置換空間的總量、已用、可用。Swap 使用量持續增加代表實體記憶體不足
下半部(程序清單)的欄位:
PID:程序編號,Kill 時要用的就是這個USER:執行該程序的使用者(root、vmail、postfix等)PR/NI:優先權與 nice 值VIRT/RES/SHR:虛擬記憶體、實際佔用的實體記憶體、共用記憶體S:狀態(R執行中、S睡眠、D不可中斷的睡眠通常是等 I/O、Z殭屍)%CPU/%MEM:佔用的 CPU 與記憶體百分比TIME+:累計使用的 CPU 時間COMMAND:程序名稱
判讀重點:先看 wa 與 load average 決定「是 CPU 問題還是 I/O 問題」,再從清單找出佔用最高的程序並記下 PID。
ps:完整程序清單
對應指令為 ps auxww。與 top 的差別在於:top 像即時排行榜,ps 則是這一刻所有程序的完整清單,而且命令列不會被截斷(可以看到完整的執行參數)。
適合用來回答「某個程序到底有沒有在跑」——例如您想確認 postfix、dovecot、clamd 是否活著,就在 ps 分頁用瀏覽器搜尋(Ctrl+F)該名稱。
主要欄位:USER(執行者)、PID、%CPU、%MEM、VSZ(虛擬記憶體)、RSS(實際實體記憶體)、TTY(終端機)、STAT(狀態碼)、START(啟動時間)、TIME(累計 CPU 時間)、COMMAND(完整命令列)。
STAT 常見值:S 睡眠、R 執行中、D 等待 I/O、Z 殭屍、T 已停止;後面若帶 < 表示高優先權、N 低優先權、l 多執行緒、s 為 session 領導者。看到 D 狀態的程序很多,通常代表磁碟或網路儲存有問題。
netstat:連線與監聽埠
對應指令為 netstat -tun——t 是 TCP、u 是 UDP、n 表示以數字顯示(不反查 DNS 與服務名稱,所以看起來會是 IP 與埠號而不是主機名)。
主要欄位:Proto(tcp/udp)、Recv-Q/Send-Q(接收與傳送佇列,持續不為 0 代表來不及處理)、Local Address(本機位址與埠,0.0.0.0:25 代表所有介面都在聽)、Foreign Address(對方位址)、State(連線狀態)。
State 常見值與意義:
LISTEN:正在等待連線(服務有正常起來)ESTABLISHED:已建立、正在傳輸TIME_WAIT:連線已結束、等待回收。數量很多是正常的(大量短連線的必然結果),但異常暴增可能代表連線被大量建立又中斷SYN_SENT:已送出連線要求、等待對方回應。大量SYN_SENT通常代表對外連線有問題(對方沒回應或線路不通)
最常用的兩個時機:①確認服務有沒有正常監聽(例如 SMTP 的 25/465/587、IMAP 的 143/993、DNS 的 53);②找出佔用某個埠的程序,再回到 ps 用 PID 確認。
ifconfig:網路介面設定
對應指令為 ifconfig -a(-a 表示包含目前未啟用的介面)。
本機常見介面:eth0(對外,WAN)、eth1(對內,LAN)、lo(本機迴路 127.0.0.1),以及虛擬介面。
每個介面要看的欄位:inet(IPv4 位址)、netmask(網路遮罩)、broadcast、inet6(IPv6)、ether(MAC 位址)、UP/RUNNING(是否啟用且有連線)、以及 RX packets/TX packets/errors/dropped(收送封包數與錯誤數)。
判讀重點:介面顯示 UP 但沒有 RUNNING,通常代表網路線沒接或對端沒通;errors/dropped 持續增加代表線路或網卡有問題。要確認「對外 IP 是否正確」時就來這一頁對照(設定畫面在(網路設定 / WAN界面設定))。
firewall:目前實際套用的規則
對應指令為 nft list ruleset,也就是核心目前真正生效的 nftables 規則,不是設定畫面裡的內容。
排版是階層式的:table(表)→ chain(鏈)→ rule(規則)。一條規則通常長這樣:
ip saddr 203.0.113.8 tcp dport 25 drop
意思是「來源 IP 為 203.0.113.8、目的埠 25 的 TCP 連線,丟棄」。
最常用的時機:在「防火牆設定」改了規則、卻覺得沒生效時,用這一頁對照最準。若這裡看不到您剛加的規則,代表設定沒有真的套用,請回到(防火牆設定 / 手動防禦設定)確認儲存是否成功。規則的比對順序是由上而下、第一條符合的就決定結果。
iftop:即時網路流量
對應指令為 iftop,固定監看對外介面 eth0,取樣 5 秒。它回答的是「現在是誰把頻寬吃掉了」。
畫面每列是一組對談(本機 ↔ 對方),中間的箭頭代表方向:
=>:從本機送出到對方<=:從對方接收進來
右側三個數字欄位是不同時間尺度的平均速率(2 秒、10 秒、40 秒),最後一欄是這段時間的累計量。判讀時要看 40 秒的平均值,只看 2 秒會被瞬間波動誤導。
因為取樣需要時間,剛切換過來會先顯示「樣本採集中…」。若系統未安裝此工具,畫面會顯示 iftop: command not available(這不影響其他分頁)。
iotop:磁碟 I/O 即時統計
對應指令為 iotop(批次模式、以 KB 為單位、取樣 2 次 × 3 秒),用來回答「是哪個程序在大量讀寫磁碟」。硬碟指示燈長亮、系統反應變慢、top 的 wa 偏高時,就來這一頁。
主要欄位:TID(執行緒/程序編號)、PRIO(優先權)、USER、DISK READ/DISK WRITE(讀寫速率)、SWAPIN(置換進來的比例)、IO>(等待 I/O 的時間比例)、COMMAND。
判讀重點:IO> 高的程序就是瓶頸來源。若排行前面的都是郵件或掃毒相關程序,通常代表正在處理大量郵件(正常);若是預期外的程序,請記下 TID 再到 ps 確認。同樣地,未安裝時會顯示 iotop: command not available。
disk:磁碟使用量與健康狀態
這一頁其實包含三個區塊,一次回答「空間夠不夠」與「硬碟健不健康」:
- 使用量(
df -h):每個掛載點(分割區)的檔案系統、總容量、已用、可用、使用率百分比與掛載位置。空間不足是郵件伺服器最常見的故障原因之一,請養成定期查看的習慣,特別注意信箱與記錄所在的掛載點 - 裝置(
fdisk -l):列出系統上實際存在的實體磁碟裝置與容量,用來確認硬碟有沒有被正確辨識 - 磁碟健康(
smartctl):對每顆實體硬碟讀取 SMART 資訊,包含型號、序號、溫度與健康屬性。這是預測硬碟故障的關鍵資訊——若出現讀取錯誤、重分配磁區等異常值,建議儘早更換硬碟。虛擬機器的虛擬碟可能沒有 SMART 資料,此時該區塊會是空的或顯示工具不存在,屬正常現象
hwlist:硬體與核心模組清單
包含兩個區塊:
- 硬體清單(
lshw -short):以簡表列出系統、主機板、CPU、記憶體、磁碟、網路卡等硬體。回報規格或評估擴充時使用 - 模組清單(
lsmod):目前已載入的核心模組(Module/Size/Used by)。出現非預期的模組時可在此察覺;Used by為 0 表示該模組目前沒有被使用
about:本頁說明
靜態的說明頁,列出本頁支援的指令種類,不會更新。
讀取失敗時顯示的訊息
若某個分頁的資料讀取失敗,畫面會顯示對應訊息:
| 分頁 | 失敗訊息 |
|---|---|
| top | 無法取得 top 資料 |
| ps | 無法取得 ps 資料 |
| netstat | 無法取得 netstat 資料 |
| ifconfig | 無法取得 ifconfig 資料 |
| firewall | 無法取得防火牆規則 |
| iftop | 無法取得 iftop 資料 |
| iotop | 無法取得 iotop 資料 |
| disk | 無法取得磁碟資訊 |
| hwlist | 無法取得硬體清單 |
看到這類訊息通常代表該指令在機器上無法執行或權限異常,請改看(系統日誌 / 主機日誌)找原因。另外 iftop/iotop/disk 的 SMART 區塊若顯示「command not available」或「not available」,代表該工具未安裝,不是系統故障。
終止程序(Kill)
top 與 ps 兩個分頁的上方都有 PID 欄位與「Kill」按鈕,用來強制結束卡住的程序。
- 在「輸入一個或多個 PID」欄位填入要終止的 PID(多個以空白、逗號或換行分隔,例如
1234 5678) - 按「Kill」
- 成功時顯示「已對 PID :pids 送出 kill 訊號」(
:pids會代換為實際送出的 PID);失敗時顯示「Kill 失敗::msg」,:msg是系統回報的原因
系統對此動作有兩層保護:
- 格式檢查:每個 PID 都必須是正整數,格式不對會直接拒絕(不會送出任何訊號)
- 不可終止 PID 1:PID 1 是系統的 init 程序,送出時會被拒絕並回報「cannot kill pid 1」
送出的是預設的終止訊號(不是強制殺除)。因此:程序收到後通常會自行收尾,但不一定會立刻消失——有些需要幾秒,有些會忽略訊號。若 Kill 後程序仍在,請確認 PID 是否正確,或改由(服務管理)重啟對應服務。
這個動作會以 root 權限執行,並寫入操作日誌,記錄為 KILL PID:...,可在(系統日誌 / 操作日誌)查到「誰在什麼時候終止了哪些程序」。
與系統儀表板的差別
兩者都會顯示伺服器狀態,但用途不同:
- 系統儀表板:圖形化總覽,包含 CPU、記憶體與磁碟使用率橫條、系統服務燈號,以及網路流量與負載圖,適合每天開起來快速看一眼整體狀況
- 系統監視器:原始指令輸出,資訊更細且更貼近底層,包含完整程序清單、連線明細、網路介面、防火牆規則、磁碟健康與硬體清單,並可終止程序,適合追查特定問題
- 一句話區分:需要「一眼看出哪裡不對」時用儀表板;需要「看到原始資料並採取動作」時用系統監視器
常見情境與判讀
- 「網站/信箱突然很慢」:
top先看wa與 load average 判斷是 CPU 還是 I/O → 若wa高,切iotop找大量讀寫的程序 → 再用disk確認是不是空間快滿 - 「服務起不來」:
netstat看該埠是不是已被其他程序佔用 → 若是,ps找出佔用的程序與 PID → 必要時用 Kill 結束它(並確認該程序不是系統關鍵服務) - 「信件一直卡住」:
top與ps確認 postfix/dovecot/掃毒程序是否還在 → 搭配(系統日誌 / SMTP日誌)看原因 - 「懷疑硬碟要壞了」:
disk的磁碟健康區塊看 SMART 屬性 → 同時df -h確認空間 → 有異常請及早備份並更換 - 「改過防火牆設定,想確認有沒有生效」:
firewall分頁對照實際規則;看不到剛加的規則時回到(防火牆設定 / 手動防禦設定)重做 - 「被大量連線攻擊」:
netstat看ESTABLISHED/SYN_SENT的數量與來源;搭配(系統日誌 / 連線記錄)與(系統日誌 / 阻斷記錄)確認 - 「要強制停掉卡住的程序」:先
ps確認該 PID 對應的完整命令列確實是您要停的目標,再 Kill
注意事項
- Kill 是立即且無法復原的動作,誤殺系統程序可能造成服務中斷(例如誤殺郵件或目錄服務程序)。送出前請先在
ps確認 PID 對應的程序確實異常 - 頁面上的程序清單與連線明細會隨時間變動,看到可疑項目時建議搭配(系統日誌 / 主機日誌)與(系統日誌 / 連線記錄)交叉確認,避免只憑一瞬間的畫面下判斷
- 這一頁只讀取系統狀態,不會變更任何設定;唯一的例外是 Kill 動作
- 本頁顯示的是「當下這一刻」的狀態,沒有歷史記錄;需要事後回溯請使用(系統日誌 / 主機日誌)
iftop與iotop的數字是取樣估計值,短時間的起伏屬正常現象,請觀察一段時間的趨勢再判斷disk與hwlist的更新較慢(30 秒),剛切換過去時看到的可能是數十秒前的資料,這是正常現象