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:
Determine who will monitor our PLT / PRD eGIS instances for ArcGIS Server Health
This is related to our Azure Monitoring
Determine logical pooling defaults for new services, and publish guidelines for our users who do publish services in this way
Have a plan for detecting services that dominate a shared pool, and migrate them back to their own dedicated pool
These would be services that are used frequently or are used heavily via GeoProcessing tasks
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