最近在調試程序的時候經常需要查看服務器的性能問題。那么到底是需要查看服務器的哪些性能呢,如何查看性能呢?下面主要就說一下一些查看服務器性能的命令。
注:由於參數過多,我只列出了幾個常觀察的參數,更多的參數說明有附帶鏈接作為參考
free –m 查看內存使用情況
這個命令比較簡單,-m 代表下面的是以M為單位
Mem是表示物理內存,主要看 Mem free代表還有多少內存可以
說一下第二行的 -/+ buffers/cache:
used = 第一行的used - buffers - cached (表示實際使用的內存總數)
free = 第一行的free + buffers + cached (表示實際剩余的內存總數)
所以一般查看內存還剩余多少查看第二行的free參數
更多詳解可以參考:http://www.linuxso.com/command/free.html
iostat命令
iostat是查看系統IO情況的命令
% user顯示了在用戶級(應用程序)執行時產生的 CPU 使用率百分比。
% system顯示了在系統級(內核)執行時產生的 CPU 使用率百分比。
% idle顯示了在 CPU 空閑並且系統沒有未完成的磁盤 I/O 請求時的時間百分比。
% iowait顯示了 CPU 空閑期間系統有未完成的磁盤 I/O 請求時的時間百分比。
%nicenice操作(改變進程優先序列操作)操作使用的CPU百分比
%steal管理程序維護另一個虛擬處理器時候,虛擬CPU的無意識等待時間百分比
在所有顯示中,我們要注意的有幾個:
1 iowait,如果iowait較高,表示硬盤操作存在IO瓶頸
2 idle, 如果高,說明CPU較空閑,如果持續低於10的話,說明CPU處理能力低,此時存在CPU瓶頸
更多說明請看:
http://wenku.baidu.com/view/404bcac48bd63186bcebbc95.html
http://wenku.baidu.com/view/900a99370b4c2e3f57276313.html
sar 命令(system activity reporter )
sar是查看操作系統的資源使用情況,CPU,內存,IO等都會在這個命令中得到體現
sar [參數] [間隔次數] [統計次數]
sar -A 1 10代表列出所有統計項目,每1s統計一次,共統計10次
Sar -A中有許多項參數,一個一個說吧
(8 CPU)很明顯,這台機子是8核的
%irq CPU用於硬件交互所占用的時間百分比
%soft CPU用於應用程序交互所占用的時間百分比
%guest CPU用於虛擬處理器所占用的時間百分比
await IO請求平均需要耗費的時間
svstm IO訪問設備的平均時間
%util CPU的IO訪問所占用和等候的時間,如果這個時間很大的話,就說明CPU的時間都放在IO操作和等候上了。此時IO瓶頸。
sar還有更多選項可以參考:
http://linux.die.net/man/1/sar
netstat命令
這里就說幾個常看的
Local Address是本地端口
Foreign Address是連接到外部的IP和端口
state是這個socket的狀態
Recv-Q和Send-Q表示端口的吞吐量
比如現在想看這台機子的nginx有多少個連接
netstat -anp | grep "nginx" | wc –l
更多的注釋說明在:http://linux.die.net/man/8/netstat
參考資料
建議讀者需要查看某個linux命令,直接參考這個網站:
雖然是E文,但是比參考很多零零散散的文章好多了。

本文基於署名-非商業性使用 3.0許可協議發布,歡迎轉載,演繹,但是必須保留本文的署名葉劍峰(包含鏈接http://www.cnblogs.com/yjf512/),且不得用於商業目的。如您有任何疑問或者授權方面的協商,請與我聯系。