GIS services are designed to perform as efficiently as possible. When a request is made to a GIS service, such as to pan a map or navigate to an address, a number of factors determine the response time. For example, each service consumes memory and CPU to run. When organizations run many services concurrently and the use exceeds available system memory, their GIS users may experience performance issues.
ArcGIS Enterprise administrators should monitor service usage in their organization and limit resources when performance is impacted by memory usage.
Your users should experience quick results when they interact with your services (including products built on services, such as web maps and apps). Adequate resources are necessary to handle the traffic your services receive.
Strive to limit resources to only those that are needed without affecting performance. This can be done by monitoring service usage, allocating service resources, and setting service modes to isolate resources for services that require dedicated resources and distributing shared resources for those that don't.
ArcGIS Enterprise on Kubernetes includes the following two service modes:
- Shared
- Dedicated
The type of mode that each service uses determines the impact on system memory consumption and, for services that receive heavy traffic, its potential impact on service performance. Learn how to update the service mode for a service or set of services.
Shared mode
When you use shared mode, services are configured to perform work for any service of a particular service type. A service in shared mode can perform work for multiple services.
Shared resources are also separated by service type; they can perform work for any service of that service type. For example, a set of map services running in shared mode can perform the work of every map service in the deployment that is designated to use shared mode.
Services in shared mode are supported by a set of shared processes. When a request is made to a service in shared mode, a process from the shared pool is dedicated to that service so that it can perform the request. Once its requests have been completed, the process is returned to the pool and can subsequently support requests from a different service. Services that use shared mode do not incur resource usage costs when they are not handling requests, because there are no active processes dedicated to them.
Dedicated mode
When you use dedicated mode for a service, a set of designated resources are used to operate the instances for that service. This can include one or more pods, each of which hosts a small number of service instances. Each instance is dedicated to requests for that particular service. For example, when you publish a map service that is configured in dedicated mode, one map server is created that includes one or more pods with service instances dedicated to serving that map service.