ArcGIS Server Shared Instance Pooling

Starting with ArcGIS Server 10.7, map services can be configured to use a shared instance pool instead of using their own dedicated pool. This can be done when configuring your service instance settings.

This has some exciting impacts on the memory footprint of ArcGIS Server when many services are published via ArcMap or ArcGIS Pro. Infrequently used services would no longer require their own dedicated pool. Administering the Server should become easier.

TODO an explanation of the impact of hosted services via the Data Store.

In practice

Once DEV was upgraded to 10.7.1, the shared instance pool was configured to use 4 instances – one for each of the virtual CPUs available.

Each of the handful of map services hosted in the root of the DEV arcgis server were configured to use this shared instance pool.

Initial results

There were only 4 of these services to be reconfigured, but a measurable change was realized:

After the settings were in place and the services restarted, the overall percentage of memory allocated has dropped from a stable level of over 45%, to a new equilibrium around 42%.

 

Next steps

While there were few services hosted at the root of the DEV arcgis server, the PLT instance currently has 10 such services. PLT has also seen some memory allocation alerts that could be helped by this approach. Once PLT has been upgraded to 10.7.1 it would be

 

Recommendations

The eGIS team has not yet had to spend much time administering our environments, but as the recent memory alert shows that time is coming soon. The following recommendations should be considered:

  1. Determine who will monitor our PLT / PRD eGIS instances for ArcGIS Server Health

    1. This is related to our Azure Monitoring

  2. Determine logical pooling defaults for new services, and publish guidelines for our users who do publish services in this way

  3. Have a plan for detecting services that dominate a shared pool, and migrate them back to their own dedicated pool

    1. These would be services that are used frequently or are used heavily via GeoProcessing tasks

  4. Review this administration plan periodically to ensure that it’s current

 

Tools

A script is available to automate switching from dedicated to shared instance pools. See https://github.com/pheede/ArcGIS-Enterprise-Stuff/blob/master/sharedinstances.py