Leo Yeh's Blog

SAS 系統管理 (88)

教學目標

初步了解 SAS 9 平台中有關 JVM 中堆記憶體和垃圾回收機制效能分析的基本概念。

重點概念

首先我們主要會透過「JConsole」工具即時查看 JVM 中記憶體之堆空間和持久代的使用情況,建議當執行完成垃圾回收機制之後,至少有 500MB 堆空間和 300MB 持久代空間,當然我們還能夠查看堆空間中新生代和老年代空間使用情況是否正常,以利初步判斷垃圾回收機制是否正常運作。

接著若我們更進一步查看 JVM 中的垃圾回收機制是否正常運作,則建議針對網站應用程式伺服器透過修改「wrapper.conf」的設定檔加入以下相關參數,重新啟動服務產生「tomcatgc.log」記錄檔,以利深入診斷效能問題。

1
2
3
4
5
6
7
8
9
wrapper.java.additional.N=-XX:+PrintGCDetails
wrapper.java.additional.N=-XX:+PrintGCDateStamps
wrapper.java.additional.N=-XX:+PrintHeapAtGC
wrapper.java.additional.N=-verbose:gc
wrapper.java.additional.N=-Xloggc:SAS-configuration-directory\Levn\Web\WebAppServer\SASServern\logs\tomcatgc.log
wrapper.java.additional.N=-XX:+HeapDumpOnOutOfMemoryError
wrapper.java.additional.N=-XX:+UseGCLogFileRotation
wrapper.java.additional.N=-XX:NumberOfGCLogFiles=1
wrapper.java.additional.N=-XX:GCLogFileSize=50M

再來我們能夠透過 SAS 官方網站所提供的「SAS Memory Diagnostic Tool」工具診斷效能問題,是否由 JVM 中的垃圾回收機制所導致。我們主要下載「smdt101.jar」工具的 Jar 檔,並且透過「java.exe」執行工具的 Jar 檔,點選「File」->「Open」開啟「tomcatgc.log」記錄檔,就能夠開始透過圖表呈現進行垃圾回收機制的分析。

最後我們要如何進行診斷分析呢?我們主要能夠點「Analysis」->「Java Heap Collection Performance Analysis」,並且點選「Occupancy(%)」欄位進行由大至小排序,以利查看垃圾回收是否經常發生,所以導致堆記憶體耗盡的情況發生。此外我們也能夠點選「Analysis」->「Performance Analysis」,並且點選「Time(ms)」欄位進行由大至小排序,以利要查看垃圾回收時間最久的時間分析垃圾回收的效能分析。

相關資源

⬅️ Go back