Troubleshooting Performance Issues in ArcGIS Pro

83287
9
02-10-2021 11:14 AM

Troubleshooting Performance Issues in ArcGIS Pro

Performance is an important part of the user experience when it comes to working with software.  Factors that contribute to the performance experience include things like hardware, data format, structure, and location, network bandwidth, display and visualization settings, and analysis complexity, among others.  Performance can be affected both positively as well as negatively by changes in any one or combination of the above factors. 

The purpose of this document is to guide you through some of the most common troubleshooting steps if you experience a performance issue while using ArcGIS Pro.

Hardware check

Check the ArcGIS Pro System requirements and run the ‘Verify your computer’s ability to run ArcGIS Pro’ utility to ensure your machine meets or exceeds the minimum requirements.

KoryKramer_0-1666706205214.png

Run the Performance Assessment Tool  Once you know that your machine meets at least the minimum requirement, run the ArcGIS Pro Performance Assessment Tool (PAT) to see where your machine falls in the range of typical results.  Download PAT and read more about it here

Note that for operations requiring disk input/output, a solid-state drive (SSD) will provide the best performance.

Update GPU driver Since ArcGIS Pro uses your GPU to accelerate rendering, the next thing to check is that your GPU driver is up to date directly from the manufacturer (e.g. NVidia or AMD).  New driver releases not only fix bugs and increase stability but can give performance increases as well!  Note that “manufacturer” means the GPU vendor in the case of a desktop computer, but if you’re using a laptop, then you’ll need to get your driver updates from the manufacturer of the laptop itself.

To check the GPU driver version, press the Windows key, search for ‘device manager’ and open Device Manager.

KoryKramer_1-1612803407077.png

Expand Display adapters.  Right-click your GPU > Properties

KoryKramer_2-1612803449028.png

You can find the driver version under the Driver tab.

KoryKramer_3-1612803497170.png

AMD GPU If you have an AMD GPU, follow the steps outlined in this article: How to Configure Laptop Switchable Graphics

Docking station If using a docking station to dock a laptop to external peripherals such as monitors, make sure that the dock’s drivers are up to date as well.  

Laptop-specific power settings  If working on a laptop that is plugged in, changing the power options to High Performance can help to ensure that the GPU runs optimally.

That takes care of the quick hardware check.  Since visualization and analysis sit on top of data, before moving on with further troubleshooting, consider the location of the data you are working with. This will help to rule out network or bandwidth issues before investing more time troubleshooting.

Antivirus check

Is there an active antivirus/firewall/software security solution that could be causing the performance issue?  Check this by disabling the antivirus solution and repeating your workflow to see if that was the cause of the performance bottleneck (it may be necessary to coordinate this with your IT department). This should only be done temporarily to isolate the cause of the performance issue and is not a recommended workaround.  If disabling the antivirus solution resolves the problem, work with your IT department or the antivirus solution vendor to determine why it’s interfering with ArcGIS Pro.

Remote desktop connection

See How To: Improve performance of ArcGIS Pro when running over Remote Desktop

Data location check

The recommendation is the same for file geodatabase as it is for enterprise geodatabases: locate your client (in this case, ArcGIS Pro) as close to your data as possible. If your client is on-premises it is not recommended to store your file geodatabases in a cloud store like Google Drive, One Drive, etc.

If your enterprise database is in the cloud, either on a virtual machine (VM) or using DBaaS, then the client that connects directly to it needs to be in the same region/data center.

If your data is not collocated with ArcGIS Pro, as a troubleshooting measure, copy the data to a local drive and repeat the operation that caused suboptimal performance to determine if data location may be the culprit.  If working with the data locally resolves the issue, it will be necessary to investigate network/bandwidth settings and capacity which is beyond the scope of this document.

Options check

Now it’s time to work with application options.

Navigate to the Project tab > Options > Display (learn more about display options).  Adjust each of the following iteratively, checking display performance after each adjustment.

  • Change the Antialiasing mode to Fast (default) or Normal.
  • Change the Rendering quality from Best toward Low.
  • Uncheck the Enable hardware antialiasing check box.
  • Change the Rendering engine from DirectX to OpenGL.  If this does not lead to a performance improvement, switch back to DirectX.
  • Check the Clear cache check box. https://pro.arcgis.com/en/pro-app/help/mapping/layer-properties/how-caching-works.htm
    • Click OK. The project closes and reopens to update the settings.

Switch to the Navigation tab (learn more about navigation options).

  • Turn off 'Show Distance to cursor' option if enabled – specific to 3D navigation, this option is not checked by default.  Unchecking it reduces data access when the cursor is moving on the screen.

Switch to the Selection tab (learn more about selection options).

  • Keep 'Display the interactive selection graphic' off unless required for your workflow.

Switch to the Color Management tab (learn more about color management).

  • Keep 'Enable color management' off unless required for your workflow.

Switch to the Indexing tab (learn more about indexing options).

  • If you know where your data is, or you rarely have reason to search projects, you can turn indexing off.  Try turning off indexing, or otherwise reschedule it to occur during times when you’re not using your machine.

 

As you continue through the following sections, the integrated Diagnostic Monitor may help to isolate the cause of a performance issue.

Map performance check

If you skipped to this section without reviewing the Data location section, check that first to ensure that the issue is not network/bandwidth related. 

Best practices for map performance in ArcGIS Pro are captured in Author a multiscale map.  The three main approaches include 1. Using generalization techniques to alter the feature geometry, 2. Adjusting the properties of map layers to limit which features draw relative to the view scale, and 3. Adjusting how the layer symbology draws relative to the view scale.  Multiple strategies (for example, using definition queries, using display filters, limiting a layer’s scale range, setting scale ranges for symbol classes, and so on) exist for each of these three approaches, so reference the ‘Author a multiscale map’ help topic for further details.

Additionally, check the following to ensure optimal map performance:

  • Keep all projections the same.  When possible, keep all data in a single projection and use the same projection for the map. When all layers are in the same projection, the performance penalty incurred by on-the-fly projection calculations can be avoided.
  • Ensure that your data is spatially indexed.
  • Working with joined or related data.  Accessing data through joins and relates can slow performance. 
    • Create attribute indexes on the join fields.
    • Joining multiple tables or layers to a single layer can be costly in terms of performance.  If possible, consider exporting the data to new feature classes that contain the joined or related information.
  • Working with labels
    • Use Summary to ensure there is no duplication of SQL queries in the label classes.
    • Use feature weights sparingly.
    • Just as with map layers described above, set visible scale ranges for the labels to ensure the map isn’t trying to draw many labels at a small scale.
    • Do not use graphic text if you have more than a few hundred pieces of text.
    • Use geodatabase annotation to store large amounts of text.

Geoprocessing check

If you skipped to this section without reviewing the Data location section, check that first to ensure that the issue is not network/bandwidth related.

The following are general best practices to ensure optimal geoprocessing performance:

  • Make sure you are working with clean geometry by running Check/repair geometry.
  • Use attribute and spatial indexes when the data source allows it.
  • Check the spatial references of the input data.  Tools that require multiple inputs, such as those in the Analysis toolbox or Spatial Analyst toolbox, require all features or rasters to be in a common coordinate system to compute spatial relationships.  Review the following guidance to ensure that you aren’t making the process more computationally intensive than necessary: Tools with multiple inputs – coordinate system affects tool performance
  • Leverage parallel processing when the tool supports it.
  • Use pairwise tools when available/appropriate.
  • For Advanced license users, consider reviewing the tools in the GeoAnalytics Desktop toolbox. Many of the tools are considerably faster than other alternatives by using a Spark parallel processing engine. A good example is Join Features or Aggregate Points over Spatial Join, and Summarize Attributes over Summary Statistics.
  • Write geoprocessing output to memory when appropriate: “Writing geoprocessing outputs to memory is an alternative to writing output to a geodatabase or file-based format. It is often significantly faster than writing to on-disk formats.”
  • Use SQL expression for feature services and enterprise geodatabases: https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/calculate-field.htm “SQL expressions support faster calculations for feature services and enterprise geodatabases. Instead of performing calculations one feature or row at a time, a single request is set to the server or database, resulting in significantly faster calculations.”
  • When geoprocessing tools are run in an edit session, performance will decrease compared to when the same tool is run outside an edit session. See Enable Undo for more details about this functionality.
  • Geoprocessing history is stored in the project (.aprx file), so a large history may affect the performance of loading and working in the project. Consider removing any geoprocessing history items that are no longer needed in the project to reduce storage size and loading time.
  • By default, geoprocessing operations are logged to the metadata of the datasets involved in the operation. The Geoprocessing History or lineage section in the metadata can be viewed using the FGDC metadata style. Running a large number of tools against a dataset as a recurring or scripted workflow can cause the Geoprocessing History section of the metadata to grow to a scale that impacts the performance of using that dataset. Metadata logging can be disabled using the Geoprocessing Options dialog described in the link above (this is an Application setting that applies to all projects used on your machine), or using arcpy.SetLogMetadata(False) within a Python script.

If following the above best practices does not improve performance, continue with the following troubleshooting steps.

1. Add the same data to a new or untitled project. Does the performance problem persist? Slower performance might be related to a large or bloated project. Your project should only include resources you need for the work, and only open maps and layouts that you need rather than keeping them all open.  We sometimes hear from panicked Pro users that they accidentally closed a map and lost their work.  Maps and layouts can be located and opened from the Catalog pane.

KoryKramer_4-1612803645367.png

There is an overhead for each background geoprocessing tool run in the geoprocessing pane which is increased per each layer in the map and each open map, particularly for tools that update an existing map layer rather than creating a new dataset/layer (like Add Join, Calculate Field, and so on).

2. Is the tool faster to run and return responsiveness to the app in the 1. geoprocessing pane, 2. floating window (limited to tools opened from ribbon or toolbar buttons that require shorter, focused interaction such as Calculate Field, Select by Attributes/Location, Add Join, and so on), 3. ModelBuilder, or the 4. Python window? The last three run in foreground execution mode which reduces the overhead and should execute faster.

Working in 3D

If you're experiencing drawing performance issues when working in 3D, try the actions below to reduce the load on the GPU and restore drawing performance:

  • Create a scene layer. I3S is a specification used to create scene layers, converting the traditional GIS data for various types (including points, LAS datasets, multipatch volumes, and BIM layers) into a form optimal for streaming and drawing at multiple levels of detail (LODs). Unlike traditional GIS data, multi-LOD representations using I3S can improve performance and scalability of a 3D scene.  While it involves conversion of the data, this conversion has a very positive effect on performance. A scene layer package (.slpk) can be stored and used locally, or published as a web scene layer.

If you are not able to convert your data to a scene layer you can try the following to improve drawing performance:

  • Lower the Rendering quality setting in the Display tab on the Options dialog box. Lowering this setting reduces the detail of elevation and reduces the resolution of textures in multipatch features to lower the demands on the GPU.
  • If your content can be draped on the surface rather than drawing independently, consider moving layers from the 3D Layers group to the 2D Layers group. This will reduce the volume of 3D geometries that are drawing in your scene, thus reducing the load on the GPU.
  • You can reduce the distance visibility limit for one or more layers in your scene. You can do this on the General tab of the Layer Properties dialog box. Change the Out Beyond parameter to a shorter distance.
  • Make sure the Optimize performance by compressing textures option (on the Display tab of the Layer Properties) is checked.
  • If your layer contains symbols such as simple icons, which do not take advantage of alpha transparency, try checking the Optimize partially transparent symbols option (on the Display tab of the Layer Properties).
  • If your geometry is dense, even when the distance visibility is limited, you can reduce the density of geometries displayed in your scene.
    • If your geometries are multipatches or you're using a multipatch as a marker symbol, use tools to simplify the geometries. The 3D Workshop Feature Extraction Tools are beta tools to repair and simplify multipatch geometries. The 3D Basemaps solution has generalization tools, the LOD2 and LOD3 building tools, for multipatch geometries.
    • If you're using traditional GIS geometries, such as points, lines, and polygons, use tools in the Generalization toolset to reduce the density of geometry that is present in your features.

Virtualization tips

Start by reviewing ArcGIS Pro in a Virtualized Environment.

ArcGIS Pro can be run on virtualization environments such as VMware or Citrix. No changes to display options are immediately necessary, but you may choose to lower rendering detail and antialiasing settings to optimize the performance of your virtual machine instance. ArcGIS Pro uses hardware acceleration if it is compatible and available on your virtualization platform. If hardware acceleration is not available, ArcGIS Pro falls back to software rendering—meaning it is using the CPU to simulate graphics card functions. In general, this will result in much lower performance than if hardware acceleration were available, especially in scenes.

It is important to scale VMs and cloud instances to perform the work needed based on what the user’s role is, or what type of user they are. Lightweight, Medium, and Heavy users can decide the resources needed to complete their work. Follow the recommendations provided by the ArcGIS Pro System Requirements to provide adequate system resources, such as CPU and RAM as well as GPU.   

When considering On-Premises options consider the roles of the GPUs.  It’s best to try to separate or scale out GPU usage case between server to reflect the user roles.  If the most users are light to medium weight users, try to group those users together to get the best density and functionality overall.  When possible, separate out the heavyweight users to their own GPUs (based on profiles 4q, 8q, etc.) as they will use greater GPU but also CPU and RAM. 

Virtualization options with either On-Premises or Cloud-based systems provide stable and useful platforms that support ArcGIS Pro. 

On-Premises Virtualization

Citrix Virtual Applications and Desktops (Formerly) Citrix XenApp

  • Not recommended due to the inability to effectively share GPU resources among multiple clients.

(Formerly) Citrix XenDesktop, VMware Horizon (ESXi w/ Horizon Client), Nutanix AHV

  • Recommended for on-premises solution to support rich VDI experience with sharable NVIDIA GPU’s.  

Cloud-based Virtualization

Amazon: WorkSpaces, EC2 with Elastic Graphics, EC2 G4

Microsoft Azure N-series

Google Cloud Platform

Oracle Cloud

The list above is a sample of the various options that can deliver ArcGIS Pro.  The viable options continue to expand, with new offerings that support user needs, and system requirements.

Esri Blogs and White Papers are updated to reflect the latest information.

Additional Resources:

Announcing the ArcGIS Pro Performance Assessment Tool (PAT)

Diagnostic Monitor

How To: Improve performance of ArcGIS Pro when running over Remote Desktop

FAQ: How do I troubleshoot ArcGIS Pro performance issues related to antivirus software (exceptions)?

Problem: Rendering and drawing performance issues in ArcGIS Pro 2.0 and above

Graphics adapter resources

What is a scene layer?

Troubleshooting Performance Issues in ArcGIS Pro

Geoprocessing Resolution, Tolerance, and Hair

ArcGIS Pro Virtualization White Paper

Working with Technical Support

If you have worked through the above checks and recommendations and continue to experience performance issues, the next best step is to work with Technical Support.  Technical Support is the most effective way to convey the information needed for development teams to act on the issue.  It provides a trackable object (this may be a Case number and a bug number, if applicable) that can be referenced in the future. 

Comments
GIS_Fox
Frequent Contributor

This post is great and should be promoted more often! Did not know about it until after issues arose, thanks to @Robert_LeClair for the suggestion. There's a few items that have come up that are listed here that would have been helpful to know ahead of time. Thank you

Mtwitchell
New Contributor

I've been looking for a thread like this for a very long time- working on a cloud-based setup across multiple offices in dispersed geographic locations has created some issues for us as a whole, especially regarding digitizing wait times and exporting, even data loss in some cases. I will be going through this entire post to see if there are things we can do to speed things up and create more cohesive processes. This post should be one of the first options to read when looking at this type of issue. 

Bud
by
Esteemed Contributor

@Mtwitchell I might suggest disabling indexing as a first step. It seemed to help speed up Pro for me. Although it can be hard to tell with this kind of thing.

JoyDRoberts
Occasional Contributor

A few of these links are pointing to older resources that have been retired. 
Could @KoryKramer (or someone) please update them? In particular the caching, search index, label summary items are in need of attention. 
This is a GREAT article and I'm going to share it with our GIS folks. Thank you, Kory. 

KoryKramer
Esri Community Moderator

Thanks for the heads up @JoyDRoberts I've updated those URLs.

IhabHassan
Esri Contributor

HI @KoryKramer ,

Valuable post, thanks for putting it together, easy to follow and use as a guide.

I have a question which I believe is related to the topic. For an editing workflow through a feature service, and the whole ArcGIS Enterprise deployment is on a cloud, including the database, does the Pro user still need to be within proximity with the database? An an example for what I mean by "within proximity": to use a virtual machine within the same network of the database. Or the user can just use their own machine which is not on the cloud? In this scenario, the editing is happening on a single or a couple of features at a time.

Another follow up: in case of bulk update/insert or hundreds of features, for the same setup as above, does the Pro user need to be within proximity with the database?

Thanks,
Ihab

KoryKramer
Esri Community Moderator

Hi @IhabHassan Here are a couple of topics that generally address your questions:

https://pro.arcgis.com/en/pro-app/latest/get-started/project-files-data-and-pro.htm

https://pro.arcgis.com/en/pro-app/latest/get-started/data-locations.htm

The closer Pro is to the data, the better performance should be.

WillAnderson
Occasional Contributor

Soooo helpful. Thank you. Wish I would have found this earlier.

WillAnderson
Occasional Contributor

Another one - check your PC power settings (high performance or power saver?)

Version history
Last update:
‎06-25-2024 12:57 PM
Updated by:
Contributors