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

Linux 服務器監控必備:16 個核心命令行工具詳解

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

圖形化工具雖直觀,但消耗資源大,不適合長期運行在生產服務器上。真正的運維專家都在命令行裡診斷問題。本文介紹 16 個經典監控命令,涵蓋 CPU、內存、磁盤 I/O、網絡、進程等核心維度,助你快速定位性能瓶頸。

為什麼選擇命令行監控?

  • 資源佔用極低,不干擾業務運行。
  • 可腳本化、自動化,易於集成到監控系統。
  • 提供更細粒度、原始的內核級數據。

建議服務器運行在 Runlevel 3(多用戶、網絡、無 GUI)。若預設進入圖形界面,可修改 /etc/inittab 將 id:5:initdefault: 改為 id:3:initdefault:,或臨時執行 init 3 切換。

16 大監控神器速覽

  1. iostat - 磁盤 I/O 與 CPU 統計
  2. meminfo / free - 內存詳情與摘要
  3. mpstat - 多核 CPU 逐核統計
  4. netstat - 網絡連接、路由、協議統計(逐漸被 ss 取代)
  5. nmon - Nigel's Monitor,全能性能顯示(類 GUI 交互)
  6. pmap - 進程內存映射詳情
  7. ps / pstree - 進程快照與樹狀關係
  8. sar - 系統活動報告(歷史數據分析)
  9. strace - 系統調用跟蹤(排查疑難雜症)
  10. tcpdump - 數據包抓取分析
  11. top - 實時進程與資源佔用
  12. uptime - 系統負載快速查看
  13. vmstat - 虛擬內存、CPU、I/O 綜合統計
  14. wireshark - 圖形化網絡協議分析器(需 X11 轉發或本地運行)
  15. dstat - 綜合替代 vmstat/iostat/netstat(現代替代者)
  16. htop - top 的增強版,交互式、彩色、支持鼠標

重點工具深度解析

iostat - 存儲系統的「心電圖」

用於檢測存儲設備性能,在用戶感知「服務器變慢」前發現 I/O 瓶頸。

# iostat 1
Linux 2.6.32-220.4.1.el6.i686 (roclinux) 2012-12-22 _i686_ (4 CPU)

avg-cpu:  %user %nice %system %iowait %steal %idle
           0.55  0.00   0.03   0.02   0.00  99.40

Device:    tps  Blk_read/s  Blk_wrtn/s  Blk_read  Blk_wrtn
sdb        0.41      2.61       5.76    2558664   5653872
sda        0.24      0.80       4.12     784650   4038344

關鍵指標:%iowait 高表示 CPU 在等磁盤;tps(每秒傳輸請求數)、Blk_read/s、Blk_wrtn/s 反映吞吐量。

meminfo / free - 內存真相

cat /proc/meminfo 提供內核級詳情;free -m 以 MB 為單位給出直觀摘要。

# free -m
             total  used  free shared buffers cached
Mem:         1513  1429   83     0    343    836
-/+ buffers/cache:  249  1263
Swap:           0     0     0

重點看 -/+ buffers/cache 行:used 為應用實際佔用,free 為可用內存。Linux 將空閒內存用作緩存,free 小不代表內存不足;若 Swap 頻繁讀寫(si/so 非零)才是真缺內存。

mpstat - 多核 CPU 逐核視角

# mpstat -P ALL
17:46:35  CPU  %usr %nice %sys %iowait %irq %soft %steal %guest %idle
17:46:35  all  0.55 0.00 0.03 0.02   0.00 0.00 0.00   0.00 99.40
17:46:35    0  0.84 0.00 0.04 0.03   0.00 0.01 0.00   0.00 99.08
17:46:35    1  0.51 0.00 0.03 0.02   0.00 0.00 0.00   0.00 99.44
...

字段含義:%usr 用戶態、%sys 內核態、%iowait I/O 等待、%irq 硬中斷、%soft 軟中斷、%steal 虛擬化偷取、%guest 客戶機 CPU。可用 -P 0 指定單核。

netstat - 網絡瑞士軍刀

常用選項:-a 所有 socket、-r 路由表、-i 網卡統計、-s 協議統計、-n 數字顯示 IP/端口、-p 顯示 PID/程序名(需 root)。現代系統建議改用 ss(iproute2 套件),速度更快、信息更全。

nmon - 一鍵全景

交互式界面,按鍵切換:c CPU、m 內存、d 磁盤、n 網絡、k 內核統計、t 熱門進程。適合快速現場排查,也可錄製數據離線分析(nmon -f -s 30 -c 2880)。

pmap - 進程內存地圖

pmap -x PID 顯示進程每個內存映射區域的大小、權限、映射文件,排查內存洩漏、共享庫加載情況利器。

strace - 系統調用顯微鏡

strace -p PID 附着到運行進程;strace -f -o trace.log ./program 追蹤子進程並輸出文件。能看到 open、read、write、connect、stat 等調用參數與返回值,解決「為什麼啟動失敗」「為什麼讀不到配置」等疑難雜症。

tcpdump - 抓包神器

tcpdump -i eth0 -nn -s0 -w capture.pcap port 80 抓取 80 端口全量數據包寫文件,再用 Wireshark 深度分析。熟練掌握 BPF 過濾語法是網絡排障基本功。

top / htop - 實時儀表盤

top 經典視圖:負載、進程數、CPU 佔用(us/sy/ni/id/wa/hi/si/st)、內存/Swap、進程列表(PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND)。htop 提供彩色、可滾動、樹狀、鼠標操作、直接殺進程等增強體驗。

vmstat - 系統健康脈搏

vmstat 1 10 每秒采樣 10 次。關注 r(運行隊列長度)、b(不可中斷睡眠)、si/so(Swap 進/出)、bi/bo(塊設備讀/寫)、in(中斷)、cs(上下文切換)、us/sy/id/wa/st(CPU 細分)。r 長期超過 CPU 核心數說明 CPU 瓶頸;wa 高說明 I/O 瓶頸。

sar - 歷史數據寶庫

sysstat 套件自帶,定時采集保存二進制日志(/var/log/sa/saDD)。sar -u CPU、-r 內存、-d 磁盤、-n DEV 網卡、-q 隊列。事後分析「凌晨 3 點發生了什麼」首選。


實戰建議: 建立基線(正常時的指標範圍),異常時對比定位。組合使用:top 看熱點進程 → pidstat -p PID 1 看線程 → strace 看調用 → tcpdump 看網絡。工具箱裡永遠裝著 man 手冊。

Copyright © Windows教程網 All Rights Reserved