Confluence has Performance Issues During the 'Rendering PDF' Export Step for Large Exports
Symptom
Whenever large exports are performed, especially with lots of images/tables, Confluence has severe performance issues during the 'Rendering PDF' phase.
Cause
When PDF exports include large amounts of content that must be rendered, the rendering phase can consume a lot of memory, and affect the performance of Confluence.
Resolution
To reduce the performance hit, you can configure Scroll PDF Exporter to perform the 'Rendering PDF' step in a separate process. This is an external conversion process executed in a separate Java Virtual Machine (JVM).
These steps should only be taken by system administrators. Configuring the options in this guide incorrectly can cause performance and stability issues in your Confluence instance.
Alternatively, Confluence administrators can also apply export restrictions to spaces/user groups and/or restrict the number of pages that can be exported.
Step 1: ensure your server has enough memory
As a rule of thumb, you need 8GB of free memory to implement this setting. This means that, after taking in account all the processes running on your server, which may include;
- Confluence
- System processes
- Database
- Memory reserved for non-heap usage
- Any other processes that you may be running
You should have at least 8GB of free memory, otherwise, running the conversion process externally will probably not improve performance/stability.
Step 2: configure the external conversion process
Once you've determined that you have enough memory, you can configure the external conversion process using advanced plugin settings at General configuration > Scroll Runtime > Advanced Plugin settings > Scroll PDF Exporter:
Advanced plugin setting | Description | How to configure |
---|---|---|
pdf.conversion.external. | Configure how large an export must be for the external process to be used. |
|
pdf.conversion.external. | You can use this setting to control the amount of memory the external process uses (and any other arguments for the Java Virtual Machine (JVM) used for the external conversion process). |
Please see Oracle's documentation on JVM command line arguments for Unix or Windows for further details. |
Practical Examples
In the examples below we assume that the virtual machine hosting Confluence does not run any other memory-intensive applications such as databases or other Atlassian software (Jira, etc.). If you do run such software you need to consider their memory requirements as well when calculating the optimal value.
Setup | Configuration options |
---|---|
|
|
| |
|
|
|