1. 程式人生 > >性能檢查工具

性能檢查工具

sys 壓縮 重傳 等待時間 監控 等待 io操作 tcp連接數 iostat

vmstat

技術分享圖片

1,表示每秒輸出一次統計信息

r:等待在CPU資源的進程數。這個數據比平均負載更加能夠體現CPU負載情況,數據中不包含等待IO的進程。如果這個數值大於機器CPU核數,那麽機器的CPU資源已經飽和。

free:系統可用內存數(以千字節為單位),如果剩余內存不足,也會導致系統性能問題。下文介紹到的free命令,可以更詳細的了解系統內存的使用情況。

si, so:交換區寫入和讀取的數量。如果這個數據不為0,說明系統已經在使用交換區(swap),機器物理內存已經不足

us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(內核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機消耗)

上述這些CPU時間,可以讓我們很快了解CPU是否出於繁忙狀態。一般情況下,如果用戶時間和系統時間相加非常大,CPU出於忙於執行指令。如果IO等待時間很長,那麽系統的瓶頸可能在磁盤IO。

pidstat

技術分享圖片

輸出進程的CPU占用率,該命令會持續輸出,並且不會覆蓋之前的數據

mpstat -P ALL 5 2

-p 指定cpu,取值ALL,cpu代號,0-(cpu個數-1)

每5秒產生一個報告,總共產生2個

技術分享圖片

顯示每個CPU的占用情況,如果有一個CPU占用率特別高,那麽有可能是一個單線程應用程序引起的。

iostat -x 1 10

-x表示顯示所有參數信息,1表示每隔1秒監控一次,10表示共監控10次。

其中rsec/s表示讀入,wsec/s表示每秒寫入,這兩個參數某一個特別高的時候就表示磁盤IO有很大壓力,util表示IO使用率,如果接近100%,說明IO滿負荷運轉

r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數和每秒讀寫數據量(千字節)。讀寫量過大,可能會引起性能問題。

await:IO操作的平均等待時間,單位是毫秒。這是應用程序在和磁盤交互時,需要消耗的時間,包括IO等待和實際操作的耗時。如果這個數值過大,可能是硬件設備遇到了瓶頸或者出現故障。

avgqu-sz:向設備發出的請求平均數量。如果這個數值大於1,可能是硬件設備已經飽和(部分前端硬件設備支持並行寫入)。

%util:設備利用率。這個數值表示設備的繁忙程度,經驗值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達100%,說明硬件設備已經飽和。

tps: 每秒I/O傳輸請求量;   

如果顯示的是邏輯設備的數據,那麽設備利用率不代表後端實際的硬件設備已經飽和。值得註意的是,即使IO性能不理想,也不一定意味這應用程序性能會不好,可以利用諸如預讀取、寫緩存等策略提升應用性能

sar -n DEV 1 4

查看網絡設備的吞吐率

技術分享圖片

DEV顯示網絡接口信息,每一秒鐘取一次值,取四次

IFACE:LAN接口 rxpck/s:每秒鐘接收的數據 txpck/s:每秒鐘發送的數據包 rxbyt/s:每秒鐘接收的字節數 txbyt/s:每秒鐘發送的字節數 rxcmp/s:每秒鐘接收的壓縮數據包 txcmp/s:每秒鐘發送的壓縮數據包 rxmcst/s:每秒鐘接收的多播數據包

sar -n TCP,ETCP 1

技術分享圖片

命令在這裏用於查看TCP連接狀態,其中包括:

active/s:每秒本地發起的TCP連接數,既通過connect調用創建的TCP連接;

passive/s:每秒遠程發起的TCP連接數,即通過accept調用創建的TCP連接;

retrans/s:每秒TCP重傳數量;

TCP連接數可以用來判斷性能問題是否由於建立了過多的連接,進一步可以判斷是主動發起的連接,還是被動接受的連接。TCP重傳可能是因為網絡環境惡劣,或者服務器壓力過大導致丟包。

性能檢查工具