本文彙總工作可能會使用到的linux性能查詢指令,並給出指令的實際用例與輸出解釋,本文將長期更新,限於作者水平有限,文中有描述不準確的地方歡迎指出,共同學習提高。
1、tsar指令
tsar是淘寶開發的用來收集服務器系統信息(mem、cpu、io、tcp)的工具,如下圖所示的命令可以輸出tsar的幫助信息
從上圖中可以看出tsar可以監控系統的cpu使用情況、物理內存&虛擬內存的使用、TCP&UDP的ipv4使用情況、網絡傳輸情況、當前系統的io性能、進程的上下文切換情況、TCP連接的相關數據以及系統負載情況等。可以說是一個比較全的監控指令。
我們以下圖爲例介紹具體一些指標的含義;
命令中的-l表示查看實時數據,-i則指明數據顯示的時間間隔,可以看出上面的指令分別列出了內存、網絡傳輸和cpu load的情況。
mem列下描述了系統的內存使用情況,共六列,其中free表示內存的可用量,used表示內存的使用量,total表示內存的總量,util是利用率。buff和cache是兩個比較容易混淆的指標,其中buff是用於存放要輸出到disk(塊設備)的數據,而cache存放從disk上讀出的數據。
traffic描述了網絡傳輸情況bytin是輸入字節數、bytout是輸出字節數、pktin/pktout描述的是峯值輸入/輸出字節、pkterr/pktdrp描述的出現錯誤的傳輸數。
load列描述系統負載情況,load1、load5&load15分別表示過去1分鐘、5分鐘、15分鐘的系統平均負載,runq是運行隊列的平均長度,plit是進程列表中進程&線程的數量。
tsar的源碼地址在這裏:http://code.taobao.org/p/tsar/src/trunk/,有功夫會分析一下tsar的源碼
2、iostat命令
顯示磁盤io相關的數據,一般的使用方式示例:iostat -x 1
其中1表示每一秒刷新一次,命令輸出結果如下圖:
其中比較關注的是最後一列%util,表示一秒之中有百分之多少的時間用於IO操作,如果%util接近100%,表示I/O請求太多,I/O系統已經滿負荷。
3、vmstat
查看服務器的狀態,結果較爲全面,包括了CPU使用率,內存使用,虛擬內存交換情況和io讀寫等等。
使用參數包括兩個數字,第一個是採樣間隔,單位是s,第二個是採樣次數,示例如下: