在做Java虛擬機的性能優化時,只有更好地了解虛擬機所處的環境,硬體平臺信息,才能更好,更有效的針對性調整,優化,提升系統的性能。
Linux性能監控工具主要包含以下4中:top命令,vmstat命令,iostat命令,pidstat工具。
在上一篇文章Linux性能監控工具集top命令:顯示系統整體資源使用情況中我們介紹了top命令的使用方式和作用,這裡我們繼續介紹vmstat命令。
vmstat命令是Linux下一款功能比較齊全的監測工具。它可以統計CPU、內存、swap、I/O操作、上下文切換、時鐘切換等的使用情況。
vmstat可以指定採樣周期和採樣次數。這裡我們舉個例子:使用vmstat進行數據採集,每秒鐘一次,共採集3次,命令為vmstat 1 3。來看下執行結果:
採集3次共3行數據,下面我們來看下每列數據的含義
一共分為6部分:Pros、Memory、Swap、IO、System、CPU;
下面是一個線程切換頻繁的Java程序代碼:
使用vmsat工具監控上述Java程序執行時的情況:
看上圖中cs值(上下文切換)和us值(用戶CPU時間)都很高,表明系統的上下文切換很頻繁,用戶CPU佔用率很高。