JVM Java Heap Size: Performance, Search Re-Index

Intranet Connections runs using the Java Virtual Machine. When Java does not have enough memory available, a number of symptoms can occur:

  • Degraded intranet performance
  • Failure during search re-index
  • Intranet freezing (java.exe stops responding)

To rectify these issues, you must increase the maximum amount of memory available to the java.exe process which handles the intranet. The steps to increase memory are different depending if you are running Railo 3.3, Railo 4.2, or CF.

Before performing the following, ensure that the server has unused physical memory which can be allocated to the intranet process.

Version 13.0

Version 13.0 uses Railo 4.2 with Tomcat.

Please see article Super Search (V13.0) Railo and IIS Settings for configuring java memory.

Version 12.0/12.5 and Railo 3.3

Version 12.0/12.5 can be running under either ColdFusion or Railo 3.3. These instructions are for Railo 3.3.

Warning: The follow steps will cause the intranet to be unavailable for a significant amount of time. You will be modifying the applicationhost.config file which requires the Web Server to be restarted which can take several minutes. In addition, even small mistakes when editing this file will cause the entire web server to stop responding.

  1. Login to the server that hosts the intranet.
  2. Make a backup of 

    C:\Windows\System32\inetsrv\config\applicationhost.config.

  3. Edit the applicationhost.config in a text editor such as Notepad.
  4. Find the line which starts with <add name="railo" displayName="[OBSOLETE] Railo 3 on Jetty 7 (deprecated)" 
    (There will be multiple setting which look similar, but we are only modifying the section with name "OBSOLETE] Railo 3 on Jetty 7 (deprecated)"
  5. If the settings haven't been changed, you should see options: -Xmn64m -Xms128m -Xmx256m
  6. Modify the setting to match the changes below in bold:
    <add name="railo" displayName="[OBSOLETE] Railo 3 on Jetty 7 (deprecated)" fullPath="%JDK_HOME%\bin\java.exe" arguments="-Xmn256m -Xms1024m -Xmx1024m -Djetty.port=%PORT% -jar start.jar --config=%SystemDrive%\Zoo\Workers\jetty\zoo-railo\start.config --ini=%SystemDrive%\Zoo\Workers\jetty\zoo-railo\start.ini" deployArguments="-jar &quot;%APPL_PHYSICAL_PATH%\%DEPLOY_FILE%&quot;" transport="tcp" protocol="http" maxInstances="1">

  7. Save the changes above. You must now restart the web server for these changes to take effect.
  8. Start Internet Information Services (IIS) Manager.
  9. Using IIS, restart the web server. This will take several minutes during which the intranet will not be available.
    (Note, you must restart the web server, not just the website).
  10. After the restart finishes, your intranet will be available again. If the intranet returns an error page, restore the backed up applicationhost.config file and restart the webserver again.

In the steps above, we increased the memory available to the intranet from the default of 256MB to 1024MB (1GB). This assumes the server has 768MB of free memory. Increasing from 256MB to 1GB is recommended for medium sized intranets with thousands of items. You can increase or decrease the amount of memory depending on your intranet size, and the amount of free memory available. 

Version 12.0/12.5 and CF

How to adjust memory settings for CF is detailed in ColdFusion Performance Enhancement Recommendations.

Have more questions? Submit a request

0 Comments

Article is closed for comments.