We have an add-in for ArcGIS Pro that we have updated to utilize referenced feature services via ArcGIS Enterprise. In our testing we have found that when we utilize a service from an Enterprise deployment in AWS we get much worse performance when using dedicated instances for the service (about 40% slower). This is not affected hardly at all by changing the cloud machine hardware as well as the settings for min and max dedicated instances. However, when testing this on a locally deployed Enterprise environment we are seeing a slight improvement when using dedicated services. So our question is what would be causing the cloud deployment/environment to cause such a large performance hit when using the dedicated instance type.
I attached a screenshot of the two instance types we tested with.
Probably a bit late now... but the instances won't change much as generally people forget to specify the correct settings for Shared Services (If I recall its virtualCPU/2 for cloud). Most likely you've configured the service to use 2-4 CPUS for the ArcSOC.exes and when changing to the m6? you're not updating it to 8.
The other main thought is you say 'referenced' which to me implies a PostgreSQL database being hit - I'm assuming this is located as close as possible to your cloud infrastructure, otherwise that'll be your biggest bottleneck.
Thanks for taking the time to reply! We have actually been working a case with Esri over this most of the year and did not find a solution. When we did our initial testing, we did take the proper configuration of instance count into consideration based on the various deployments we did and the hardware being used. This really did not have much effect on the performance as a whole. This is likely due to the testing just being from a single ArcGIS Pro client and really only one instance being used at a time.
The services have been referenced using a PostgreSQL database for all of our testing and we have tried both local database instances on the Enterprise machine as well as using the AWS RDS service.
We also saw the issue occur when using a VM hosted by Microsoft Azure. To this day, the issue remains that when using Enterprise (11.3 for our testing) in a cloud environment, there is a clear performance decrease when using services configured to use dedicated instances compared to shared instances.
I know that's a lot of information and it's quite a weird issue since it's difficult to expose and reproduce outside of our add-in. We even got on a call with a couple Esri folks from the Pro SDK and they also felt like it was an Enterprise issue.
No worries, dealt with the same issues 🙂
My other thought is to ensure your Enterprise stack is as updated with Patches as possible. When we went from 10.9.1 -> 11.3 we experienced biweekly RAM degradation across all Server EC2s, leading to ~weekly crashes.
If you want 'good' metrics for your setup, I'd recommend configuring your logging to FINE and after ~3days swap the service swap to dedicated, and then use SystemLogParser to generate your metrics - GitHub - Esri/SystemLogParser: A reporting tool specifically designed for analyzing ArcGIS server a…
(I specify ~3days because the 'Complete' run of the LogParser restricts graphs to a weekly view.)
The GitHub page has some further URLs that explain how to use it, what the metrics mean etc.