PROBLEM
The number of ArcSOC.exe instances can consume high memory (RAM) resources, causing ArcGIS Server stability issues.
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.
There are two options to try to resolve the situation where a system is out of memory even when idle.
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:
The following steps describe how to set a service to use the shared instance pool.
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.
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.
Get help from ArcGIS experts
Download the Esri Support App