PROBLEM

The number of ArcSOC instances causes ArcGIS Server stability issues

Last Published: March 8, 2023

Description

The number of ArcSOC.exe instances can consume high memory (RAM) resources, causing ArcGIS Server stability issues.

Task Manager - Performance tab shows high memory use

Cause

The problem occurs when the number of instances running on a single host machine exceeds the available system resources. This manifests as the system exceeding available memory limits, consuming excessive resources, which can lead to an unstable service environment.

ArcGIS Server is tuned for optimal performance without additional configuration. Even when the system is idle, it is often configured to handle a large volume of concurrent requests by having a significant number of service instances on standby.

Solution or Workaround

There are two options to try to resolve the situation where a system is out of memory even when idle. 

  • Option 1 is for ArcGIS Server 10.7 and later. 
  • Option 2 is for all versions of ArcGIS Server.


Option 1: Set services to use the shared instance pool.  (Available in ArcGIS Server 10.7 and later.)

Staring at 10.7, ArcGIS Server includes a shared instance pool; by default, there are four ArcSOC.exe processes in this shared instance pool.  With a shared instance pool, instead of a service spinning up its own individual ArcSOC.exe process, it will utilize the available ArcSOC.exe processes in the shared instance pool.  Once the request is done being handled, that ArcSOC.exe process is free to be used by any other service in the shared pool.  This can reduce the number of ArcSOC.exe processes running on the ArcGIS Server machine and is ideal for services that don't need their own individual ArcSOC.exe processes.

The shared instance pool option is available for map services that have been published from ArcGIS Pro.  The following restrictions limit what services can use the shared instance pool:

  • Only map services can be configured to use the shared instance pool. Other service types, such as geoprocessing services, are not supported.
  • Only certain capabilities of map services—feature access, WFS, WMS, and KML—can be enabled. Turn off all other capabilities before continuing.
  • Services that have custom server object extensions (SOEs) or server object interceptors (SOIs) cannot use shared instances.
  • Services published from ArcMap cannot use shared instances.
  • Cached map services published from ArcGIS Pro that meet the above requirements can use shared instances.

The following steps describe how to set a service to use the shared instance pool.

  1. Log in to ArcGIS Server Manager with an administrative account.
  2. Under Site(root) > System, click the service to modify.
  3. Click Pooling, and select the Shared instance pool radio button.
Setting a service to use the shared instance pooling in Server Manager
  1. Click Save and Restart.


Option 2: Tune the number of instances for individual services. (Available in all versions of ArcGIS Server)

If utilizing the shared instance pool functionality in ArcGIS Server isn't an option, consider tuning the minimum number of instances for individual services. Specifically, consider setting the minimum number of instances to 'MinInstances = 0' for rarely used services. This reserves memory and capacity space for other active map and geoprocessing services. Having a minimum number of instances to zero may result in delayed performance as it will take time for the ArcSOC to spin up after a request.  Refer to the following ArcGIS Help documentation for additional information on ArcGIS Server service configuration and optimization: Configure service instance settings

The following steps describe how to specify the number of instances of ArcSOC.exe processes in ArcGIS Server Manager.

  1. Log in to ArcGIS Server Manager with an administrative account.
  2. Under Site(root) > System, click the service to modify.
    Selecting the service to modify in ArcGIS Server Manager
  3. Click Pooling, and modify the Minimum number of Instances per machine to 0.
    Setting the Minimum number of instances
  4. Click Save and Restart.
Note:
The Minimum number of instances value must be less than or equal to the Maximum number of instances value.

Refer to the following ArcGIS Help documentation for additional information on Configuring service instance settings.

Article ID:000012639

Software:
  • ArcGIS Server

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options

Related Information

Discover more on this topic