初探jconsole+weblogic9.2

 

web 項目使用weblogic9.2做爲服務器, 出現了out of memory 問題, 這時就引發了需要監控JVM內存使用情況. 本來一開始使用jprofiler ,但是隻能免費10天... 10天能幹什麼,難道我們程序員就不過週末了??萬惡的jprofiler公司. 還好JDK1.5有jconsole.

 

步驟:

 

1. weblogic服務是"startWebLogic.cmd" 程序來啓動的 , 要想連接到jconsole必須設置com.sun.management.jmxremote 參數.

 

運行->startWebLogic.cmd -Dcom.sun.management.jmxremote

或者在快捷方式加上也可以:

 

 

 

2.運行->jconsole

 

3.選擇監控服務

 

 

4.OK,連接成功,如下圖

 

 

 

記錄一點Out Of Memory 原因:

 

堆是應用程序使用的主要部分,一旦堆滿,應用程序就會拋出Out Of Memory錯誤。具體關於堆的構成以及垃圾回收算法,可以參考文檔:

http://aleung.blogbus.com/logs/4712392.html

這個環節的優化:

1)       增加JVM內存,使得可使用的堆內存儘可能多,延長垃圾回收的時間。需要注意的是,一般來說,回收1G內存所需要的時間是7秒左右,如果這個時間訪問量比較高,極容易導致應用停止響應,所以並非是越大內存越好。

      通過增加 XX:+PrintGCDetails  參數可以觀察到垃圾回收的頻率和時間2)       調整垃圾回收策略,加快JVM的回收,因爲Web應用響應高,很多都是無用內存,加快回收可以保證有效堆會更多,這種方式會消耗更多的CPU。

 

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