This issue here is that there is no math equation based on which one can decide the min\max number of instances (ArcSOC.exe) needed for each published service.
In a test environment, we have been trying to understand service performance when executing actions such as panning, zooming, quiring, etc. We found out that, for example, zooming a service that contains a layer of 300,000 polygons is really a heavy action and would consume around 12% of the CPU (machine specs: 3GHz CPU, 4 Cores, 64 GB RAM, 2133 MHz). This means that if 10 users are zooming at the same time, then the CPU will get full just from zooming action on a service!
Zooming actions consumes on a service 12% of the CPU
Each ArcSoc.exe occupies around 80 MB on the RAM
Then imagine that we have 100 or 1000 users are zooming at the same time. Does this lead to the fact that no any server what the specs are will be sufficient to take care of services?
This could explains why our web mapping application fails at peak hours!
http://geomolg.ps/
----------------------------------------
Jamal Numan
Geomolg Geoportal for Spatial Information
Ramallah, West Bank, Palestine