Many of you must probably have observed *.hprof files generated in log folder in BI servers. hprof files are heap dump of the memory of java-based processes. Huge hprof files most commonly indicate out of memory issues about the related processes. These hprof files can be configured at startup to track and monitor memory performance issues.
In order to analyze the hprof files, there is a tool called Memory Analyzer(MAT) provided by SAP and IBM jointly. You can download latest version from here. In this post, I will try to explain shortly how to analyse the hprof files and OOM (out of memory) issues in BI servers and solve them.
- Download the MAT tool from above URL and copy it somewhere on your disk. No need to install. Just unzip. Java must be readily installed of course. Minimum java version is described in documentation
- Run executable “MemoryAnalyzer” under folder “mat”. Its symbol is like something below
- The entrance screen is below.
mat entrance screen
- Click File -> Open Heap Dump. Select the hprof file as below. You will see the file name in format <“java_pid”><OS PID number of process>. The PID number may provide a hint for you to understand. However, all BI server processes look the same in task manager. Moreover, PID may be a sub process of the main process. You can try to find the process using process explorer. However, let’s not get stuck with trying to find the identity of the process at this stage.
- choose “Leak Suspects Report”
- Click “System Properties”
- On the next screen, you will see many properties and values. the most important parameter here is “businessobjects.name” parameter. The parameter is in format <hostname.APS.***> just like you see in CMC -> servers. This parameter show us the BI server process the OOM is related with. Most often, the issue can be solved by increasing the -Xmx value of the related server process.
In this post, I tried to explain the hprof files and how to understand the server process the file originates from. You may read in some SAP notes the procedure of disabling the generation of hprof files. Disabling is not right. Because generation of these files informs us that something related with memory consumption is not right. Don’t disable. But analyze the files and make proper parametrization