We have a large number of map services (~40) and GP services (>10) on our GIS server (10.1 Linux, virtual with 4 cores). Since we have a finite amount of memory (20Gb), and most of our map services see relatively little usage, we decided to take a conservative approach when applying service setting. For low usage services, we use the following settings:
- Low isolation
- 0 minimum instances
- 4 maximum instances
- Max 4 instances/process
This ensures that none of our low usage service ever spawn more than one process and we generally have plenty of memory in reserve.
The problem is...these services seem to be crashing a lot. I did a bit of sleuthing and found that the services crashes seem to occur when 0 instances (and therefore 0 processes) are running and 2 services requests come in at the same time (or very close to). I think the server might be "tripping over itself" as it tries to start up 2 instances under a single non-existent process.
Does this seem logical?
If so, I see 2 potential solutions:
- Set the services to high isolation with 0 minimum instances.
- Leave the services at low isolation, but set the minimum instances to >= 1. If I were to go this route, is there any benefit to waiting to start up all of the instances associated with a process. From my testing, there doesn't seem to be much difference (in memory used) between a low isolation process with a single running instance and a low isolation process with 4 running instances.
Thanks is advance,