Updating JVM Allocation in Curator Server & Why

Updated on December 8th, 2022

Curator is based upon multiple technologies including SOLR and in this guide, we’ll be exploring how to increase the JVM (Java Virtual Machine) memory and why.

SOLR is an open-source enterprise-search platform, written in Java. Its major features include full-text search, hit highlighting, faceted search, real-time indexing, dynamic clustering, database integration, NoSQL features, and rich document handling. SOLR is built upon JVM which performs some of the following operations: Loads code; Verifies code; Executes code; Provides runtime environment. 

Curator Utilises SOLR as an indexer, allowing for quick searches of databases without having to query the database directly, doing so increases performance and allows users to search throughout Curator in a timely fashion.
This also allows the database to run smoothly without having users run large queries affecting its performance.

 For the most comprehensive and up-to-date information available on SOLR, you can navigate to THIS WEBPAGE.

Increasing the JVM memory in the Curator Server configuration file allows SOLR to utilize more resources whenever performing its operations. By default, JVM has an allocation of 4GB of RAM, which is enough for SOLR’s most basic operations. IPV recommends that an additional 1.5 – 2GB of memory are allocated to JVM per 1 000 000 million records in SOLR however there are many variables that can cause this to vary - sometimes it's a case of increasing the resource, once increased, monitoring and testing performance should take place and any further adjustments made as necessary.

To find how many records you have in SOLR, browse to the SOLR site on the Curator server: http://localhost:8983/

Select the drop-down 'Core Selector' on the left-hand side and choose the one with the highest value.
Next, on the left-hand side, select 'Query'
Once selected, Within the 'q' text field, enter an asterisk. (this means we will search solr for everything) - once entered, select 'Execute Query' at the bottom.
You will then find your number of records on the right-hand side next to the "NumFound" there is an image below to show you each step.

Ofcourse when making adjustments to the configuration, considerations have to be made with regards to the resources of the local server.
When increasing the resources, you must ensure that the server has the resource available to grant to SOLR.
Using the last 5gb of memory on a server would likely cause SOLR to perform better however it will bring the server to a half, therefore solr will likely crash too.
IPVs guidance is that of a balancing act, ensuring that SOLR has enough resource to process what it needs, but also allowing the server to continue running as required.

You can check how much resource SOLR is using at any given time by browsing to the SOLR dashboard on the Curator Server host.

Browse to here: http://localhost:8983/solr/#/

On the right hand side you can see the current usage noted as 13.47gb whereas the total assigned is 40gb.

Now the ground rules have been explained,to increase the JVM memory, you’ll need to follow the down below steps:

  1. RDP to the Curator Server host, as JVM/SOLR are integrated within Curator Server.
  2. Navigate to the installation directory of Curator Server and its configuration file:

Services.CuratorServer.Hosts.WindowsService.exe

C:\Program Files\IPV\Curator\Server

  1. Open the Curator Server configuration file and locate the section: SolrConfiguration.

Text

Description automatically generated with low confidence

  1. Change the jvmMemory="4g” to your desired value, for instance: jvmMemory="16g”
  2. Save the changes, then open Windows’ Service and restart Curator Server (will result in a short downtime window).

Once the changes has been made, you should see them appear on the SOLR dashboard like the image above.



Was this article helpful?