原文地址:梁桂釗的博客java
博客地址:blog.720ui.comlinux
歡迎轉載,轉載請註明做者及出處,謝謝!ios
當性能出現問題時,能夠經過 Linux 操做系統的命令獲取性能信息。本節會介紹一些經常使用的 Linux 的性能監控命令。windows
這個命令適合用來實時掌握操做系統的總體狀況,且可以實時反映出系統各個進程的資源的佔用狀況,相似於 windows 的任務管理器。使用 top 命令能夠顯示進程信息。bash
# top
複製代碼
圖中,上半部分顯示操做系統的各類信息,包括 CPU 使用狀況、內存使用狀況、進程執行狀況等。下半部分顯示了活動比較頻繁的進程,能夠在這些進程中排查問題的端倪。肯定可疑的進程後,能夠指定相關進程,並設置信息更新時間,顯示完整命令。下面來看一個例子,其中,指定顯示進程 9836,每隔 5 秒的進程的資源的佔用狀況。服務器
# top –d 5 –p 9836 -c
複製代碼
這個命令適合用來查看某個瞬間存在哪些進程,這些進程的信息和狀態等。經過 ps 命令,能夠判斷當前進程的狀態,從而找出問題的緣由。使用 ps 命令能夠顯示系統中當前全部的進程。網絡
# ps -ef
複製代碼
同時,也能夠指定查看相關的進程。下面來看一個例子,其中,查看全部 java 進程。性能
# ps –ef | grep java
複製代碼
這個命令能夠知道 Linux 系統的網絡狀況,適合用來查看網絡鏈接信息。其中,能夠查看當前的全部鏈接。ui
# netstat -a
複製代碼
此外,能夠監聽 TCP 的鏈接。spa
# netstat –atl
複製代碼
甚至能夠統計端口的當前鏈接數。下面來看一個例子,其中,查看 10090 端口的當前鏈接數。
# netstat -an | grep 10090 | wc -l
複製代碼
這個命令適合用來監控系統設備的 IO 負載狀況,對系統的磁盤操做活動進行監控。iostat 首次運行時,顯示系統啓動開始的各項統計信息,以後運行 iostat 將顯示自上次運行該命令之後的統計信息。用戶能夠經過指定統計的次數和時間來得到所需的統計信息。下面來看一個例子,其中,每秒採樣一次,連續 5 次,觀察磁盤 IO 的使用狀況。
# iostat –k 1 5
複製代碼
這個命令適合用來監控 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 隊列太長,致使響應時間變慢。
這個命令適合用來監控 CPU 使用率,內存使用,虛擬內存交換狀況,IO讀寫狀況等。下面來看一個例子,其中,每秒採樣一次,連續 5 次,觀察虛擬內存的使用狀況。
# vmstat 1 5
複製代碼
其中,第一行顯示是 Linux 操做系統啓動後的平均值,因此通常看第二行後面的值。
其中,swpd、 si、 so 三個指標的值比較高,極可能是內存不足。若是 cache 使用率很是低,而 swap 的 si 或 so 有比較高的數據值時,應該警戒內存的性能問題。此外,注意的是,當內存嚴重不足時,系統會頻繁使用調頁和交換,這增長了磁盤 I/O 的負載,進一步下降了系統對做業的執行速度,即系統 I/O 資源問題又會影響到內存資源的分配。
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 信息。
(完,轉載請註明做者及出處。)
更多精彩文章,盡在「服務端思惟」!