We are running ArcGIS Server 10.6.1 and are having some performance issues. We are experiencing heavy memory consumption that I'm thinking is attributable to a high number of ArcGIS SOCs running. I am trying to fine tune the services and would like some help in really understanding what happens after I publish a service.
When I connect to the ArcGIS Server in Catalog and view the services, there are two columns referring to the number of instances for a particular service: "Instances Running", and "Instances in Use".
1) What is the difference between these two columns?
2) Which column is related to the ArcGIS SOC created on the server?
3) Even if I set the number of minimum instances running to 0 there occasionally is still "1 Instances Running" but "0 Instances in Use" why is that?
4) In my simplistic nature, I assume the more heavily a service is being requested the more instances I need to have available?
5) In a scenario where a user has a web map open but the layer is turned off, is that layer still requesting an instance or not?
Any help in deepening my understanding of this process to help my end users and adjust for performance gains would be greatly appreciated
Number of instances at zero means when the system is not being used then no instances are up and running.
The other number is the max number of instances that can be running.
Have it check your sever to verify how many cores you have for sure
When we set up our enterprise we had requested 8 cores. We had serious issues in performance. We finally figured out it had only configured 1 core. They fixed that and we have been flying.
Thank you for your quick response.
We operate VMs and we have 2 Virtual processors on our machine that is our hosting ArcGIS Server, does that mean we essentially have 2 cores?
What do you mean you only had 1 core configured? Is that something you configure from Enterprise; to utilize all your cores?
I apologize for the novice understanding.
A core is part of a CPU that receives instructions and performs calculations, or actions, based on those instructions. ... Processors can have a single core or multiple cores. A processor with two cores is called a dual-core processor, four cores is quad-core, etc. up to eight cores
The more cores you have the more calculations your system can perform at a time.
To see how many cores your computer has you can press CTRL + Shift + ESC and click the performance Tab to see how many cores your computer has. Below is a snapshot of mine. In order to see how many your server has you would need to remote into it.
Not guaranteeing that this is your issue, but 2 virtual processors (i.e. processors that pretend to be there) could be a large part of your issue. Our server is set up with 2 x 4 Virtual Core processors
You maximum speed appears kind of slow as well. As I wrote I am no IT person but I also think you might have an issue with no cache
Robert has addressed a lot of your questions, but I wanted to provide some additional resources:
Although pooled instances changes this at 10.7.1, 10.6.1 will simply use the n +1 recommendation where n equals the total number of cores on your machine.
So if I have 4 cores on my machine and I know a service will encounter heavy traffic, I would set the maximum number of instances to 5 for optimal performance.
Also, if I know a service is not going to need as many resources, I can set the minimum instances to zero so that there are no ArcSOC's spun up but not being used.
Hope this helps!
That is correct. Now keep in mind the design of this changes at 10.7 and above but at 10.6.1, this is precisely how it should operate. Instances correlate with ArcSOCs. If you are on Windows, you can just open task manager and get a sense of how many ArcSOCs are running.
I always start with the baseline of ArcGIS Server system requirements and then make my way from there.
I would also suggest logging into your Server Manager. Tab on the right is Logs
Under that you can see View Logs, Error Reports, and Statistics. You can select statistics and set one up to show various statistics. You can save the report so you don't have to rebuild it every time. You can also set them up to be general.
You can use these to see which services are getting the most traffic and experiencing the longest timeouts.