I'm running a stress test tool that's simulating 10 concurrent requests for an ArcGIS Server 10.1 (Windows) Map Service. I have the Map Server set to use a maximum pool of 4 instances.

I'm not using caching - these are full screen map images based on random coordinates within a bounding area of interest.

Regardless of whether I'm using File Geodatabase, PostGIS or SQL Server as the source of the data - the maximum number of instances that gets used is 2.

FYI - the requests are coming from separate threads and are staggered by 200ms with an in-between request delay of 1000ms. So I would expect it to fire on all cylinders during the test.

Any ideas why it never uses the maximum number of instances?

1 Answer 1


Instances in Server 10.1 are pooled by default. Once a request is completed, the instance is returned to the pool and not held by the requester. Given that, your 1000ms delay might be too much time in between requests. 2 instances might be enough to handle that much volume. Try reducing your delay between requests and see if the number in use goes up.

Also, is this a single machine cluster with 4 instances per machine? Or is it a different configuration? If it is a two machine cluster with 2 instances per machine, it is possible that one of the machines is unable to fulfill the requests for some reason. If that is the case, you should see logged errors for that machine and you will never see more than 2 instances in use.

  • Unfortunately, it's not the delay. At 100ms between requests, only 2 ArcSOC.exe's are being used even though the requests are timing out (>60s). FYI - single user rendering times are <0.5s
    – minus34
    Commented Jun 6, 2013 at 5:33
  • What are the exact settings you are using? Isolation, instances per process, number of processes per machines, and number of machines in the cluster. Commented Jun 6, 2013 at 12:18
  • Yes, forgot to mention - it's a single VM with 4 logical CPUs and 32Gb RAM. Test details are: 10 concurrent threads with a 200ms delay between them on startup, 100 hits per thread with a 100-1000ms gap between each hit. Map service is set to 4 max instances, high isolation (isolation is the bit I don't know much about with ArcGIS Server... still looking into this)
    – minus34
    Commented Jun 6, 2013 at 12:42
  • You only really use high isolation when you are going to have long edit transactions. Otherwise you should be using low isolation. One of your SOC processes is running the service catalog (open Task Manager and turn on the Command Line column in the Processes tab to see what each ArcSOC is doing). So that might mean you only have one process running your map service. While I am not sure of the -reason- for your problem, running in low isolation might solve it (make sure you have have the instances per process set to at least 4). Commented Jun 6, 2013 at 18:41
  • Thanks for your help! The problem is being caused by my stress test app. Even through the app is running 10 concurrent requests in separate threads on the client side - I'm limited to 2 ArcGIS Server instances every time. I'm guessing this is because they look like they are the same session (?). Running multiple instances of my app uses more AGS instances! I'll look into it further and post my findings to close this issue off.
    – minus34
    Commented Jun 7, 2013 at 5:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.