服務端思維指南 | 常用效能監控指南

樑桂釗發表於2018-09-16

原文地址:樑桂釗的部落格

部落格地址:blog.720ui.com

歡迎轉載,轉載請註明作者及出處,謝謝!

當效能出現問題時,可以通過 Linux 作業系統的命令獲取效能資訊。本節會介紹一些常用的 Linux 的效能監控命令。

top 命令 – 監控程式狀態

這個命令適合用來實時掌握作業系統的整體情況,且能夠實時反映出系統各個程式的資源的佔用情況,類似於 windows 的工作管理員。使用 top 命令可以顯示程式資訊。

# top
複製程式碼

服務端思維指南 | 常用效能監控指南

圖中,上半部分顯示作業系統的各種資訊,包括 CPU 使用情況、記憶體使用情況、程式執行情況等。下半部分顯示了活動比較頻繁的程式,可以在這些程式中排查問題的端倪。確定可疑的程式後,可以指定相關程式,並設定資訊更新時間,顯示完整命令。下面來看一個例子,其中,指定顯示程式 9836,每隔 5 秒的程式的資源的佔用情況。

# top –d 5 –p 9836 -c
複製程式碼

ps 命令 – 檢視當前程式

這個命令適合用來檢視某個瞬間存在哪些程式,這些程式的資訊和狀態等。通過 ps 命令,可以判斷當前程式的狀態,從而找出問題的原因。使用 ps 命令可以顯示系統中當前所有的程式。

# ps -ef
複製程式碼

同時,也可以指定檢視相關的程式。下面來看一個例子,其中,檢視所有 java 程式。

# ps –ef | grep java
複製程式碼

服務端思維指南 | 常用效能監控指南

netstat 命令 – 檢視網路連線情況

這個命令可以知道 Linux 系統的網路情況,適合用來檢視網路連線資訊。其中,可以檢視當前的所有連線。

# netstat -a
複製程式碼

此外,可以監聽 TCP 的連線。

# netstat –atl
複製程式碼

服務端思維指南 | 常用效能監控指南

甚至可以統計埠的當前連線數。下面來看一個例子,其中,檢視 10090 埠的當前連線數。

# netstat -an | grep 10090 | wc -l
複製程式碼

這個命令適合用來監控系統裝置的 IO 負載情況,對系統的磁碟操作活動進行監控。iostat 首次執行時,顯示系統啟動開始的各項統計資訊,之後執行 iostat 將顯示自上次執行該命令以後的統計資訊。使用者可以通過指定統計的次數和時間來獲得所需的統計資訊。下面來看一個例子,其中,每秒取樣一次,連續 5 次,觀察磁碟 IO 的使用情況。

# iostat –k 1 5
複製程式碼

服務端思維指南 | 常用效能監控指南

sar 命令 – 效能監控

這個命令適合用來監控 CPU 的使用率和空閒情況,以及磁碟 I/O 的使用情況、網路卡流量的使用情況等。監控 CPU 的情況,可以使用 –u 引數,輸出 CPU 使用情況的統計資訊。下面來看一個例子,其中,每秒取樣一次,連續 10 次,觀察 CPU 的使用情況。

# sar –u 1 10
複製程式碼

服務端思維指南 | 常用效能監控指南

值得注意的是,如果 %user + %sys 超過 85%,程式可能要花時間在執行佇列中等待,因此響應時間和吞吐量會受影響。但是,使用率 100% 不一定意味著 CPU 就是效能瓶頸,此時可以進一步檢視 vmstat 命令中的 r 值是否超出伺服器的 CPU 數量。此外,%system 比較大,說明系統管理方面花了很多時間。需要進一步的分析其它軟硬體因素。監控磁碟 I/O 的情況,可以使用 –d 引數,輸出每個塊裝置的活動資訊。下面來看一個例子,其中,每秒取樣一次,連續 10 次,觀察磁碟 I/O 的使用情況。其中,-p 引數可以列印出磁碟的裝置名稱。

# sar –pd 1 10
複製程式碼

服務端思維指南 | 常用效能監控指南

如果 %util 接近100%,可能由於產生的 I/O 請求太多,I/O 系統已經滿負荷,因此磁碟存在瓶頸。此外,如果 %await 遠大於 %svctm,可能是因為磁碟 I/O 佇列太長,導致響應時間變慢。

vmstat 命令 – 虛擬記憶體監控

這個命令適合用來監控 CPU 使用率,記憶體使用,虛擬記憶體交換情況,IO讀寫情況等。下面來看一個例子,其中,每秒取樣一次,連續 5 次,觀察虛擬記憶體的使用情況。

# vmstat 1 5
複製程式碼

服務端思維指南 | 常用效能監控指南

其中,第一行顯示是 Linux 作業系統啟動後的平均值,所以一般看第二行後面的值。

服務端思維指南 | 常用效能監控指南

其中,swpd、 si、 so 三個指標的值比較高,很可能是記憶體不足。如果 cache 使用率非常低,而 swap 的 si 或 so 有比較高的資料值時,應該警惕記憶體的效能問題。此外,注意的是,當記憶體嚴重不足時,系統會頻繁使用調頁和交換,這增加了磁碟 I/O 的負載,進一步降低了系統對作業的執行速度,即系統 I/O 資源問題又會影響到記憶體資源的分配。

nmon 命令 – 效能監控

nmon 可以在一個螢幕上顯示所有重要的效能資訊,包括 CPU 資訊、記憶體資訊、網路資訊、磁碟 I/O 資訊等,並動態地對其進行更新。可通過 IBM 官網上免費下載獲取或者通過 yum 命令直接安裝。這裡,使用 wget 方式進行下載與安裝。

# wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz
# tar zxvf nmon_linux_14i.tar.gz
# chmod 777 nmon_x86_64_sles11
複製程式碼

至此,安裝完成。通過下面命令進行啟動。

# ./nmon_x86_64_sles11
複製程式碼

在執行介面上,輸入 C 顯示CPU資訊,輸入 M 顯示記憶體資訊,輸入 N 顯示網路資訊,輸入 D 顯示硬碟 I/O 資訊。

服務端思維指南 | 常用效能監控指南

(完,轉載請註明作者及出處。)

更多精彩文章,盡在「服務端思維」!

服務端思維指南 | 常用效能監控指南

相關文章