Anticipate and accommodate users
Performance and scalability is a pillar of a well-architected ArcGIS system. It is important to ensure that the GIS functionality provided by ArcGIS Server performs well for all users. When planning your ArcGIS Server deployment, determine how many users will use your system and how much hardware you need to support that number of users. Other factors, such as whether the usage is likely to come in spurts, should affect your decisions. If you don't have the option to add more hardware, you may be able to accommodate more users by adjusting your service configurations.
Plan the number of machines in a site
An ArcGIS Server site is an assemblage of one or more machines participating on equal terms. In times of high processing loads, an ArcGIS Server machine generally reaches full CPU utilization before the web server; therefore, determining how many ArcGIS Server machines to deploy is an important decision for accommodating users.
In general, more users, more services, and more computationally intensive services will all require more system resources. If you know that your users' needs require substantial computing power, you may need to plan from the outset to have multiple ArcGIS Server machines in your site. However, your initial estimates may not be accurate or usage may change over time. As such, you should also use observability tools to determine if you need to adjust the number of machines in your site.
For example, if normal requests to ArcGIS Server time out during peak system loads and your CPU utilization approaches 100 percent for an extended period of time, your ArcGIS Server site may benefit from additional machines. You can change the number of machines either manually or through an automated process using virtual machines. For example, you can create a script that adds a new ArcGIS Server machine when the CPU exceeds 70 percent utilization for more than 15 minutes.
Some procedures, such as map caching or geoprocessing, can take a relatively large amount of CPU resources. If you can anticipate when these jobs perform, you can create more ArcGIS Server machines temporarily and destroy them when the job finishes. In these scenarios, virtual machines and cloud computing platforms are convenient because the additional hardware can be acquired quickly and released immediately after use.
Learn about configuring a multiple-machine ArcGIS Server site
Plan service configurations
You can configure individual services to best meet users' needs. For example:
Different types of services have different capabilities, advantages, and limitations.
Map caching can improve performance for services that are frequently accessed but use infrequently updated data.
Adjusting the number of instances and the instance configuration used by a service can impact system resource usage and request response time.
See Tune services to meet user needs for more information.
Use observability tools to understand usage
Once your system is up and running, continue to evaluate how well your server performs. You can use operating system tools, such as Windows Performance Monitor, or third-party tools, such as Amazon Cloud Watch, to monitor system performance. ArcGIS Server also provides built-in observability tools to help you understand how users are interacting with services:
The metrics API reports information about services and machines in your ArcGIS Server site that can be scraped by a Prometheus deployment.
Server logs record events that occur in an ArcGIS Server site.
Server statistics provide information on service usage and health for an ArcGIS Server site that can be viewed and exported from Server Manager.
Usage patterns may change over time, and your initial configuration of the site and published services may no longer serve users' needs. Use observability tools to make sure you are aware of any changes and can adjust the service configuration or number of machines in your site accordingly.