服務端思惟指南 | 經常使用性能監控指南

原文地址:梁桂釗的博客java

博客地址:blog.720ui.comlinux

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

當性能出現問題時,能夠經過 Linux 操做系統的命令獲取性能信息。本節會介紹一些經常使用的 Linux 的性能監控命令。windows

top 命令 – 監控進程狀態

這個命令適合用來實時掌握操做系統的總體狀況,且可以實時反映出系統各個進程的資源的佔用狀況,相似於 windows 的任務管理器。使用 top 命令能夠顯示進程信息。bash

# top
複製代碼

圖中,上半部分顯示操做系統的各類信息,包括 CPU 使用狀況、內存使用狀況、進程執行狀況等。下半部分顯示了活動比較頻繁的進程,能夠在這些進程中排查問題的端倪。肯定可疑的進程後,能夠指定相關進程,並設置信息更新時間,顯示完整命令。下面來看一個例子,其中,指定顯示進程 9836,每隔 5 秒的進程的資源的佔用狀況。服務器

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

ps 命令 – 查看當前進程

這個命令適合用來查看某個瞬間存在哪些進程,這些進程的信息和狀態等。經過 ps 命令,能夠判斷當前進程的狀態,從而找出問題的緣由。使用 ps 命令能夠顯示系統中當前全部的進程。網絡

# ps -ef
複製代碼

同時,也能夠指定查看相關的進程。下面來看一個例子,其中,查看全部 java 進程。性能

# ps –ef | grep java
複製代碼

netstat 命令 – 查看網絡鏈接狀況

這個命令能夠知道 Linux 系統的網絡狀況,適合用來查看網絡鏈接信息。其中,能夠查看當前的全部鏈接。ui

# netstat -a
複製代碼

此外,能夠監聽 TCP 的鏈接。spa

# 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 信息。

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

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

相關文章
相關標籤/搜索