Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 系統效能監控必備:七大核心指令全解析

編輯:Linux 系統常見問題解答

當你接手一台 Linux 伺服器,第一時間想掌握系統「健康狀態」,不需要安裝複雜的監控套件,系統內建的幾個經典指令就能提供極具價值的第一手資訊。本文整理了網路、磁碟、CPU、記憶體、I/O 與進程六大面向的核心指令,並搭配實戰輸出範例,幫你快速建立效能基準線。

一、網路篇:ifconfig 與 netstat

1. ifconfig — 介面級流量總覽

輸入 ifconfig 即可列出所有網卡資訊:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
      inet 10.144.81.226 netmask 255.255.240.0 broadcast 10.144.95.255
      ether 00:16:3e:02:04:ba txqueuelen 1000 (Ethernet)
      RX packets 69775 bytes 91364566 (87.1 MiB)
      RX errors 0 dropped 0 overruns 0 frame 0
      TX packets 26057 bytes 1937311 (1.8 MiB)
      TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    RX packets 286 bytes 32054 (31.3 KiB)
    TX packets 286 bytes 32054 (31.3 KiB)

關鍵欄位速查:

  • ethX:實體網卡編號,有幾個就代表幾張網卡
  • inet / netmask / broadcast:IP、子網路遮罩、廣播位址
  • RX/TX packets/bytes:收發封包數與流量,快速判斷是否有異常爆量
  • errors/dropped/overruns:非零值通常暗示驅動、纜線或交換器埠問題

2. netstat — 連線狀態與埠口掌握

netstat -antup(或 ss -antup)可列出所有 TCP/UDP 連線:

Proto Recv-Q Send-Q Local Address    Foreign Address   State       PID/Program
tcp   0      0      0.0.0.0:80       0.0.0.0:*       LISTEN      1234/nginx
tcp   0      0      115.28.204.58:22 59.71.67.114:21489 ESTABLISHED 5678/sshd
udp   0      0      0.0.0.0:123      0.0.0.0:*                   9101/ntpd

實戰用途:

  • 排查「服務起不來」→ 確認埠口是否被佔用(LISTEN)
  • 發現異常連線 → 觀察 ESTABLISHED 的來源 IP 與 PID
  • 統計連線數 → netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

二、CPU 與負載:w 與 uptime

 16:59:52 up 4 days, 18:20,  1 user,  load average: 0.09, 0.04, 0.05
USER  TTY  LOGIN@  IDLE  JCPU  PCPU  WHAT
root  pts/0 16:51  0.00s 0.06s 0.00s  w

Load Average 三數值含義: 分別為 1、5、15 分鐘內「可執行佇列 + 不可中斷睡眠」進程的平均數量。

  • 單核心:長期 > 1.0 代表擁塞
  • 多核心:判斷基準 = 核心數 × 0.7(保守)或 1.0(激進)
  • 若 load >> CPU cores 且 %iowait 高 → 磁碟瓶頸;若 %user/%sys 高 → 運算瓶頸

三、磁碟空間:df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       40G  2.1G   36G   6%  /
devtmpfs        489M     0  489M   0%  /dev
tmpfs           497M     0  497M   0%  /dev/shm

必看欄位: Use% 超過 80% 需規劃清理或擴容;Mounted on 確認關鍵目錄(/var, /home, /data)是否獨立分區,避免單一分區滿載拖垮整機。

四、記憶體:free -h

              total  used  free  shared  buff/cache  available
Mem:           992M  918M   74M    19M       531M      716M
Swap:            0B    0B    0B

重點解讀:

  • available:真正可給新進程用的記憶體(含可回收 cache),比 free 更具參考價值
  • Swap 非零:若持續佔用且 si/so(vmstat)頻繁,代表實體記憶體不足
  • buff/cache:系統自動管理,壓力大時會釋放,通常不需手動清理

五、I/O 效能:iostat -x 1

Device  r/s  w/s  rkB/s  wkB/s  await  %util
xvda    0.1  0.3   0.9    5.1    2.1    0.5%

黃金指標:

  • %util 接近 100% → 裝置飽和
  • await > 20 ms(SSD)或 > 100 ms(HDD)→ 延遲過高
  • rkB/s + wkB/s 接近裝置理論帶寬 → 吞吐瓶頸

六、進程快照:ps aux / ps -ef

USER  PID %CPU %MEM  VSZ   RSS TTY STAT START  TIME COMMAND
root    1  0.0  0.3 188792 3804 ?   Ss   Mar15  0:10 /usr/lib/systemd/systemd
root  123  2.1  1.2 456789 123456 ?  Sl   10:00  5:23 java -jar app.jar

常用組合技:

  • 找佔 CPU 前 5:ps aux --sort=-%cpu | head -6
  • 找佔記憶體前 5:ps aux --sort=-%mem | head -6
  • 樹狀看父子關係:pstree -p 或 ps -ef --forest

七、進階組合:一鍵健檢腳本

將上述指令封裝成 health_check.sh,排程每 5 分鐘跑一次並推送至 Grafana / Prometheus / 鈉釘機器人,即可構建零成本監控閉環:

#!/bin/bash
echo "=== $(date) ==="
echo "Load: $(uptime | awk -F'load average:' '{print $2}')"
echo "Mem:  $(free -h | awk '/Mem:/ {print $3\"/\"$2}')"
echo "Disk: $(df -h / | awk 'NR==2 {print $5}')"
echo "Net:  $(ss -s | awk '/TCP:/ {print $2}') connections"
iostat -x 1 2 | tail -n +4 | awk '{print $1,$12,$10}' | column -t

小結: 這七個指令無需安裝、零依賴、跨發行版通用,是 Linux 運維「隨身聽診器」。熟練解讀其輸出,勝過裝十套監控 Agent 卻看不懂圖表。下次 SSH 進機器,先跑一遍 w; df -h; free -h; iostat -x 1 2; ps aux --sort=-%cpu | head,系統大體狀況盡在掌握。

Copyright © Windows教程網 All Rights Reserved