Submit a ticketCall us

AnnouncementsChange Is Inevitable

Get valuable help when it comes to tracking and monitoring changes. SolarWinds® Server Configuration Monitor (SCM) is designed to help you: detect, track, and receive alerts when changes occur, correlate system performance against configuration changes, compare server and application configuration against custom baselines, and verify application and system changes.

Learn more.

Home > Success Center > Orion Platform > Orion - Knowledgebase Articles > Enabling gcServer mode for selected services

Enabling gcServer mode for selected services

Updated September 21, 2018

Overview

This article provides information on when, why, and how to enable gcServer mode for selected services.

Environment

  • All Orion Platform versions

Services:

  • SolarWinds Information Service v3
  • Module Engine Host (Business Layer) - only if it is not separated to individual processes

Steps

Conditions under which you may want to enable gcServer mode 

  • Minimum of 16 GB of RAM (for SWIS only), 32 GB and more if also enabled for Module Engine Service. You can expect to see faster processing time.
  • Minimum of 8 physical CPU cores. You can expect to see improvement in end-to-end response of services.

How to enable gcServer mode:

  1. Back up the Config file for the affected service and make sure the backup is placed outside of the Orion directory.  
  2. Stop the affected services.
  3. Navigate to the Config file for the affected service, for example, the SolarWindsInformationServiceV3 config file is found in: %:\Program Files (x86)\Solarwinds\Orion\Information Service\3.0 and the file name is SolarWinds.InformationService.Service.exe.config.
  • BL: Program Files (x86)\SolarWinds\Orion\SolarWinds.BusinessLayerHost.exe.config
  • BLx64: Program Files (x86)\SolarWinds\Orion\SolarWinds.BusinessLayerHostx64.exe.config
  1. Edit the Config file and add the <gcServer enabled="true"/> and <gcConcurrent enabled="true"/> line in the runtime section:
    <runtime>
    <enforceFIPSPolicy enabled="false" />
    <gcServer enabled="true" />
    <gcConcurrent enabled="true" />

    </runtime>
  2. Save the file and restart the services.

Benefits of enabling gcServer mode for given services:

  • Same amount of memory is processed, in approximately the same "amount" of CPU time, but concurrently, resulting in:
    • much faster completion of each single 2nd generation (full) GC cycle, scaling with the number of available CPU cores.
    • much higher end-to-end response time of the service, as the collections are running on high priority dedicated threads.
  • Managed memory is separated to concurrently processed segments, scaled by the number of CPU cores.
    • Generations 0 and 1 are processed in parallel, without the need to block threads using the other memory segments, which improves end-to-end responsibility of the services even more, and again, scales with number of CPU cores.

Additional information

  • Initial memory consumption of the process with gcServer enabled will multiply several times (2-4x can be expected).
    • The exact amount is an implementation detail of .NET, and scales up and down with both CPU cores and available RAM.
    • The memory is reserved to the specific process but not "lost" – real memory usage and growth remains approximately the same.
    • This cannot be prevented or adjusted, as it's needed to manage the memory in separate segments, to gain the aforementioned improvements.
  • Runtime settings are only adjustable per-process, before it's started, and cannot be set separately for plugins / instances of the same executable.

 

Last modified

Tags

Classifications

Public