iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
DevOps

30天WebSphere入門及經驗分享系列 第 13

D13/調整Server的Heap Size

  • 分享至 

  • xImage
  •  

昨天有提到,在產出heap dump時要注意,如果知道你的程式使用很多的memory的話,要先檢查空間是否足夠,否則dump檔可能會把空間塞爆。

一般來說WebSphere上每個Server預設給的上限256MB,
如果程式使用的memory超過這個上限就會發生OOM (Out Of Memory),
當OOM發生時,WAS會自動傾倒出heap dump、core dump、java core等紀錄檔。

為了避免發生OOM,如果確定程式就是要用到這麼多,甚至更多記憶體的話,
我們可以從console上調整Server的Heap Size:
側邊選單 > Servers > WebSphere application servers > server1
https://ithelp.ithome.com.tw/upload/images/20220927/20128973vuvqnH8LHV.png
右側選單找到Server Infrastructure > 展開 Java and Process Management,點擊進入Process definition
https://ithelp.ithome.com.tw/upload/images/20220927/201289736jl6FyR5Ku.png
右側點擊 Java Virtual Machine,進入的頁面就可以調整起始的heap size大小以及上限了
https://ithelp.ithome.com.tw/upload/images/20220927/20128973fPLRajkuZE.png
在這個頁面,我們也可以勾選 Verbose garbage collection (藍框處),再按下ok並存檔、重啟server
如此一來在native_stderr.log就會記錄gc的回收資訊以及記憶體使用量的狀況,
之後可以拿工具來開啟log以圖表檢視。

這邊,我們來做一下實踐,
我在我的程式寫一段無窮回圈,故意製造OOM的狀況發生,
https://ithelp.ithome.com.tw/upload/images/20220927/20128973CfqFEvEi7e.png

可以從TextLog.log看到java.lang.OutOfMemoryError: Java heap space
https://ithelp.ithome.com.tw/upload/images/20220927/20128973AmlCTnGPyR.png

用IBM的工具分析log,可以看到OutOfMemory大概是在256MB(預設上限)左右的時候發生的
https://ithelp.ithome.com.tw/upload/images/20220927/20128973fej6Jrlz3p.png

明天再繼續。

這個工具如何取得明天再補充。


上一篇
D12/WebSphere Log & Debug(四) - Java dumps and cores
下一篇
D14/調整Server的Heap Size (二)
系列文
30天WebSphere入門及經驗分享36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言