Submit a ticketCall us

Training ClassThe Orion® Platform Instructor-led Classes

Provided by SolarWinds® Academy, these trainings will introduce users to the Orion Platform and its features, management, and navigation. These courses are suitable for users looking to discover new tips, tricks, and ways to adapt their Orion products to better suit their monitoring needs:
Deploying the Orion Platform
Configuring Orion views, maps, and accounts
Configuring Orion alerts and reports

Reserve your seat.

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