1. 程式人生 > >linux系統性能監控常用命令

linux系統性能監控常用命令

一、Linux伺服器效能關注點 1)CPU -> load:表示cpu在一段時間內正在處理以及等待處理的任務之和統計資訊,簡單可理解為cpu正處理的執行緒數和能同時處理的執行緒數的比值。一般認為load值的安全上限為cpu的個數 -> run queue:表示cpu維護的執行緒執行佇列。在多核系統中,每個cpu都將維護這麼一個佇列,其長度值越大表明cpu負載越高,load指標便基於此統計而來 -> utilization:cpu使用率,由如下部分組成。後面一般是cpu被充分利用的比值分佈                      user          60%~70%                      system     30%~35%                      idle            0%~5%                      io wait       接近0% ->context switches:當可執行的執行緒數大於cpu資源時,系統為會強行換出正在執行的執行緒以保證其他執行緒得到執行的機會。對於被換出的執行緒,系統會保留其執行時上下文,以便在下次排程時恢復執行。 ->nice:在使用者空間內,通過nice或setpriority呼叫改變過優先順序程序的cpu佔用率。在同等情況下,優先順序高(值越小)的程序會比優先順序低的得到優先排程。nice不為0,表明發生了低優先順序程序搶佔高優先順序程序的情況 2)Memory ->buffer:針對IO讀寫設計而言的緩衝區,主要目的是保證不同外設之間的程序資料同步 ->cache:把已讀取的資料快取起來,當下次需要同樣的資料直接從快取中獲取(命中),以提高訪問速度 ->swap:對實體記憶體的擴充套件 3)IO ->R/W:讀/寫流量 ->rtps/wtps:每秒請求IO讀/寫的事務數 4)Network ->in/out網路流量大小 ->tcp/udp/sock/httpd的連線數 二、linux常用命令 1) 檢視伺服器基本配置 cat /proc/cpuinfo  察看cpu資訊 grep processor /proc/cpuinfo | wc -l    統計cpu個數 cat /proc/meminfo   察看memory資訊 uname -a   系統基本資訊  w 或者 who 察看使用者登入 sar   系統報告命令 常用引數  -q : cpu load               -u : cpu utilization               -r : memory               -b : io               -n : network sar -q 1 5
    察看cpu的load狀況,每1s鍾統計1次,共統計5次 從上圖中可以看出,load較低,5個cpu有3個runqsz為0,說明系統負載不高 sar -u 2 3   察看cpu使用率,每2s統計1次,共統計3次 cpu的idle佔比達到了90%+,也說明系統很閒 sar -r   察看當日記憶體佔用情況(預設每10分鐘統計一次)  8G實體記憶體中,使用率達到90%以上,其中buffer有100m+,cache3G+(大量本地快取造成),swap空間共有2G,基本沒用 sar -b 察看當日IO使用情況 系統不斷重新整理日誌檔案,IO反映出以write為主 sar -n SOCK
   察看網路sock連線  sar -n DEV 察看網路流量 sar -u -f /var/log/sa/sa21   對歷史資料察看,對比分析系統問題(sa21表明是本月21號的資料) vmstat 實時效能監控 top  顯示伺服器任務 常用引數 H :切換到顯示所有執行緒              1 :顯示各個cpu執行情況(類似的命令還有mpstat ) ps -ef 或 ps -aux    都是顯示所有程序,區別在於不同的顯示風格 ps -eLf | grep java | wc -l  統計java執行緒數 將java換成httpd可統計apache執行緒數 find、df、
 du、iostat   磁碟IO命令 find /home/admin/ -name "hsf.log"   在/home/admin/路徑下查詢名為hsf.log的檔案 df -ha 察看檔案系統的磁碟佔用情況 du -ak | sort -t$'\t' -l1 -nr -k2 -r 對當前目前下所有檔案按檔案大小倒排序,大小相同按檔名字母倒排序  iostat -x -d   5 磁碟IO流量每5秒重新整理統計 ipconfig、ping、netstat 網路監控命令 netstat -ano | grep 8787   察看8787埠的連線情況  在windows下可以藉助ip,通過nbtstat命令反查連線機器資訊,這在排查團隊成員誰遠端debug伺服器佔用連線資源很有幫助 另外,對於不太熟悉的命令可以使用man 檢視,進一步對於某命令的引數不理解,可以對該命令使用-h 來檢視如何使用