在Linux服務器的日常運維中,系統監控是確保服務穩定運行的關鍵。就像醫生需要定期體檢一樣,服務器也需要定期“體檢”,通過監控工具及時發現CPU、內存、磁盤等資源的使用情況,避免因資源不足導致服務卡頓或宕機。本文將介紹幾個初學者必備的Linux性能監控工具,讓你快速掌握服務器“健康狀況”的查看方法。

一、top:即時監控系統性能與進程

用途top是最常用的即時監控工具,能動態顯示系統的CPU、內存、進程等資源使用情況,方便快速定位“喫資源”的進程。
基本命令:直接在終端輸入 top,按 q 退出。
關鍵信息解讀
- 第一行:系統時間、運行時長、登錄用戶數、負載情況(load average,若超過CPU核心數,可能CPU過載)。
- 第二行(Tasks):總進程數、運行中進程數、睡眠進程數、停止進程數、殭屍進程數。
- 第三行(%Cpu(s)):CPU使用率,常見指標:
- us:用戶進程佔用CPU時間(正常應低於70%,過高可能有惡意進程);
- sy:系統內核佔用CPU時間(若持續過高,需檢查內核或系統調用頻繁的程序);
- id:空閒CPU時間(越高越好,接近100%表示CPU負載低);
- wa:IO等待時間(若wa > 20%,可能磁盤IO慢,需優化存儲)。
- 第四行(KiB Mem):內存使用情況,total(總內存)、used(已用)、free(空閒)、buff/cache(緩存和緩衝區,系統可直接使用)。
- 第五行(KiB Swap):交換分區(當內存不足時,系統會將部分數據臨時寫入磁盤,swap使用率過高會嚴重影響性能)。
- 下方進程列表:按 P 排序CPU使用率,M 排序內存使用率,可快速找到佔用資源高的進程。

二、vmstat:系統整體性能分析

用途vmstat(Virtual Memory Statistics)能更全面地反映系統的整體性能,包括進程調度、內存交換、IO等信息。
基本命令vmstat 1(1秒刷新一次,按Ctrl+C退出)。
關鍵列解讀
- r:等待運行的進程數(若r > CPU核心數,說明CPU處理不過來,需優化或增加CPU);
- b:不可中斷睡眠的進程數(若b > 0,可能進程在等待IO,如磁盤讀寫);
- swpd:已使用的交換分區大小(若swpd > 0且持續增加,內存可能不足);
- free:空閒內存(包括未使用的內存和緩存);
- si/so:交換分區讀寫速率(si表示從磁盤讀入內存,so表示內存數據寫入磁盤,兩者持續不爲0說明內存嚴重不足);
- bi/bo:塊設備IO速率(bi表示從磁盤讀入內存,bo表示內存數據寫入磁盤,過高可能磁盤IO瓶頸)。

三、iostat:磁盤IO性能監控

用途iostat(Input/Output Statistics)專門用於監控磁盤的讀寫速度、IO請求頻率等,幫助判斷磁盤是否成爲性能瓶頸。
基本命令iostat -x 1-x顯示詳細IO指標,1秒刷新一次)。
關鍵列解讀
- tps:每秒IO請求數(tps越高,磁盤壓力越大);
- kB_read/s/kB_wrtn/s:每秒讀/寫的數據量(單位:KB);
- %util:磁盤設備的利用率(若%util接近100%,磁盤忙不過來,需檢查是否有大量寫入操作);
- await:IO請求的平均響應時間(單位:毫秒,越高說明磁盤讀寫慢,如機械硬盤可能在20ms以上)。

四、free:快速查看內存使用

用途free用於快速查看內存總容量、已用、空閒及緩存情況,適合快速判斷內存是否足夠。
基本命令free -h-h參數將單位自動轉爲KB/MB/GB,更易讀)。
關鍵信息
- total:總內存(物理內存+交換分區);
- used:已用內存(包括進程佔用和緩存);
- free:空閒內存(未被使用的物理內存);
- available:系統可用內存(free + buff/cache的一部分,實際可分配給新進程的內存)。
注意:若available持續低,可能內存緊張,需排查是否有內存泄漏或高內存佔用進程。

五、dfdu:磁盤空間監控

用途
- df:查看磁盤分區的總容量、已用空間和使用率(避免磁盤佔滿導致服務無法寫入);
- du:查看目錄或文件的大小(定位大文件或目錄,釋放空間)。

df命令df -h(按分區顯示,-h單位自動轉換)。
- Filesystem:分區設備名(如/dev/sda1);
- Size:分區總容量;
- Used:已用空間;
- Avail:可用空間;
- Use%:使用率(超過85%需清理,如日誌文件、臨時文件等)。

du命令du -sh [目錄](如du -sh /var/log,查看日誌目錄大小)。
- -s:僅顯示彙總大小;
- -h:人類可讀單位(如KB/MB/GB);
- 若需查看子目錄,可加--max-depth=1(僅看一級子目錄)。

六、如何選擇工具?

  • 快速概覽系統:用top(即時、直觀);
  • 檢查內存是否緊張:用free -h(簡單看可用內存);
  • 排查磁盤IO瓶頸:用iostat -x 1(看%utilawait);
  • 檢查磁盤空間:用df -h(定位滿盤分區);
  • 定位大文件:用du -sh [目錄](逐步縮小到具體文件)。

總結

以上工具是Linux服務器監控的基礎,初學者不必記住所有參數和細節,先掌握核心命令和關鍵指標,日常運維中按需使用即可。例如:發現服務卡頓,先用top看CPU和內存是否超高;內存不足,用free確認是否需要加內存或清理緩存;磁盤讀寫慢,用iostat檢查是否IO飽和。多實踐幾次,你就能快速判斷服務器“健康狀況”,讓服務穩定運行~

小夜