別小看這10個命令行工具,助你實現實時 Linux 系統性能監控
引言:
系統一旦跑起來,我們就希望它能夠穩定運行,不要宕機,不出現速度變慢。因此,對于Linux 系統管理員來說每天監控和調試 Linux 系統的性能問題是一項繁重卻又重要的工作。監控和保持系統啟動并運行是很不容易的一件事。

下面是小編總結的十個實用的 Linux 系統監控命令,讓你輕松保持系統的實時性能監控。
uptime命令
uptime命令可以查看系統總共運行了多長時間和系統的平均負載。

顯示的信息顯示依次為:
- 現在時間、
- 系統已經運行了多長時間
- 目前有多少登陸用戶
- 系統在過去的1分鐘、5分鐘和15分鐘內的平均負載
通過這些數據我們可以清晰的看出來服務器的負載是在趨于緊張還是趨于緩解的狀態。
vmstat 命令
vmstat命令的含義為顯示虛擬內存狀態,但是它可以報告關于進程、內存、I/O等系統整體運行狀態。

每2秒獲取一次數據
#>vmstat 2

上圖中,我們可以看出來vmstat命令,會輸出系統的核心指標,我們可以更加詳細的了解服務器的性能情況。
pidstat 命令
pidstat命令用來監控被 Linux 內核管理的獨立任務(進程)。它輸出每個受內核管理的任務的相關信息。pidstat命令也可以用來監控特定進程的子進程。間隔參數用于指定每次報告間的時間間隔。
使用pidstat不加任何參數等價于加上-p參數,但是只有正在活動的任務會被顯示出來。

I/O 統計數據
- # pidstat -d -p 8472

IO 輸出會顯示一些內的條目:
- kB_rd/s - 任務從硬盤上的讀取速度(kb)
- kB_wr/s - 任務向硬盤中的寫入速度(kb)
- kB_ccwr/s - 任務寫入磁盤被取消的速率(kb)
監測內存使用
- # pidstat -r 2 5
會顯示5份關于page faults的統計數據結果,間隔2秒。這將會更容易的定位出現問題的進程。
free -m 命令
free -m 命令相對于top 提供了更簡潔的查看系統內存使用情況

第一部分Mem行:
- total 內存總數: 378M
- used 已經使用的內存數: 163M
- free 空閑的內存數: 215M
- shared 當前已經廢棄不用,總是0
- buffers Buffer 緩存內存數: 11M
- cached Page 緩存內存數:57M
可用內存計算公式:
可用內存 =free +buffers +cached, 實際操作即:215 +11+57 =253MB;
top 命令
top命令很常用,在第三行有顯示CPU當前的使用情況。

字段說明:
- PID:進程標示號
- USER:進程所有者
- PR:進程優先級
- NI:進程優先級別數值
- VIRT:進程占用的虛擬內存值
- RES:進程占用的物理內存值
- SHR :進程使用的共享內存值
- S :進程的狀態,其中S表示休眠,R表示正在運行,Z表示僵死
- %CPU :進程占用的CPU使用率
- %MEM :進程占用的物理內存百分比
- TIME+:進程啟動后占用的總的CPU時間
- Command:進程啟動的啟動命令名稱
其他指令
「sar -n DEV 1」可以查看網絡設備的吞吐率,吞吐量可以判斷是被是否飽和,是檢查服務器性能的一個重要指標。
「sar –n TCP,ETCP 1」用于查看TCP連接狀態以及連接數量。其中,TCP的連接數量可以用來判斷服務器的性能如何,同時還能夠判斷誰是主動連接,誰是被動連接。
「Iostatb –xz 1」主要用于查看服務器的磁盤IO情況,看是否有滿負荷運轉的情況發生。
「Dmesg | tail」用于輸出查看日志使用,這些日志可以幫助我們排查性能的問題。
作為 IT 運維工程師,定時的關注服務器性能變化,可以幫助在發現異常的第一時間采取措施,保障業務的正常運行。試想,如果擁有一個能夠監控全局,實現業務告警風險提醒的運維協作工具呢?定能極大提升工作效率,加強團隊運維保障能力!