By default, eazyBI is running inside the same Jira JVM process or Confluence JVM process and is sharing JVM heap memory and other resources with Jira or Confluence) and all other apps.
eazyBI report queries are executed using the embedded Mondrian OLAP reporting engine. When you perform complex queries which need to access all issues data, then the Mondrian OLAP engine can use all available Java heap memory for the report results cache. It can happen when doing either drill through detailed issues, or when some measures need to be calculated for all issues, or when cross-joining many dimensions in the report. If the Mondrian OLAP engine will use all available JVM process heap memory, then it might significantly slow down the overall Jira (or Confluence) performance.
Therefore, the new separate "child JVM process" option is added for eazyBI. If you enable it, then the eazyBI app will launch a separate child JVM process and report execution queries will be proxied to this child process. CPU and memory expensive Mondrian OLAP engine operations will be performed just in this child process and will not affect the main Jira JVM process heap memory usage (eazyBI for Jira) or Confluence JVM process heap memory usage (eazyBI for Confluence).
You can enable the separate child process in the eazyBI settings page (where you initially specify the database connection). You need to specify the following options:
The child process will listen on this TCP/IP port for requests from the eazyBI plugin. By default, the port number 3801 is suggested. If you run several Jira instances with the eazyBI plugin on the same server, then specify a different port number in each instance.
- JVM options
Additional JVM options that you want to use for the child JVM process. By default, the following options are used:
-Xms256m(set initial JVM heap size to 256MB),
-Xmx1024m(set max JVM heap size to 1GB). If you would like to increase JVM max heap size to, e.g., 2GB, then specify "JVM options" as
Please ensure that the server, where Jira is running, has enough free memory for the additional child process. If the operating system will not be able to provide required memory for the child process, then it will cause memory swapping of disks and slow performance of the server.
The child process settings are stored in the Jira home directory in the
eazybi.toml file (where database connection parameters are stored as well). In this file automatically generated
client_secret settings are stored as well – it is used for signing the authorization tokens when making the requests from eazyBI to the child process.
After updating the child process settings, the child JVM process will be automatically started or stopped. If you visit the settings page again, then you will see the status of the child process – Running or Not running. If it is not running, then please check the
eazybi-child.out log file (see below).
The child process will create and use the following log files in the Jira home directory
eazybi-child.log– if the child process is successfully started, then report requests that are proxied to this process are logged in this log file (which previously were logged in the main
eazybi-child.out– the initial child process startup messages are logged in this file. If the child process was not started, then most probably you will see the error in this file. Send this file to eazyBI support if you need help to understand the cause of the error.
eazybi-child.pid– in this file, the child process PID (process number) is stored.
There is a separate Child process section in the system administration Troubleshooting page (which is shown if the child process is enabled). In this section you can see:
- The current status of the child process.
- JVM heap memory statistics for the child process – total memory (currently allocated memory), free memory (from the total memory), max memory (the max limit to which the total memory can be extended – corresponds to the
- JVM process CPU usage (not available on Windows).
If necessary (e.g. if the child process consumes too much CPU or if the process is stuck), you can restart the child process from here. If you want to change the child process options (e.g. JVM max memory option or the port number) then go to the system administration Settings page.
In the Log files section you can also view the last 1000 lines of