JVM調優 Linux相關指令

Linux相關指令

top

主要查看%CPU%MEM,還有load averageload average後面的三個數字,表示系統1分鐘、5分鐘、15分鐘的平均負載值。如果三者平均值高於0.6,則複雜比較高了。當然,用uptime也可以查看。

vmstat

查看進程、內存、I/O等多個系統運行狀態。2表示每兩秒採樣一次,3表示一共採樣3次。procsr表示運行和等待CPU時間片的進程數,原則上1核CPU不要超過2。b是等待資源的進程數,比如磁盤I/O、網絡I/O等。

[root@ ~]# vmstat -n 2 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 173188 239748 1362628    0    0     0     3   17    8  0  0 99  0  0
 0  0      0 172800 239748 1362636    0    0     0     0  194  485  1  1 99  0  0
 1  0      0 172800 239748 1362640    0    0     0     0  192  421  1  1 99  0  0

pidstat

查看某個進程的運行信息。

free

查看內存信息。

df

查看磁盤信息。

iostat

查看磁盤I/O信息。比如有時候MySQL在查表的時候,會佔用大量磁盤I/O,體現在該指令的%util字段很大。對於死循環的程序,CPU佔用固然很高,但是磁盤I/O不高。

ifstat

查看網絡I/O信息,需要安裝。

CPU佔用過高原因定位

先用top找到CPU佔用最高的進程,然後用ps -mp pid -o THREAD,tid,time,得到該進程裏面佔用最高的線程。這個線程是10進制的,將其轉成16進制,然後用jstack pid | grep tid可以定位到具體哪一行導致了佔用過高。

JVM性能調優和監控工具

jps

Java版的ps -ef查看所有JVM進程。

jstack

查看JVM中運行線程的狀態,比較重要。可以定位CPU佔用過高位置,定位死鎖位置。

jinfo/jstat

jinfo查看JVM的運行環境參數,比如默認的JVM參數等。jstat統計信息監視工具。

jmap

JVM內存映像工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章