When setting up MapServices for ArcGIS, I'm often given an mxd that has many layers in it and told to publish it.
Should I have more mapservices with fewer layers in each, or fewer mapservices with more layers in each?
What are the tradeoffs ?
Map services are pretty costly. They require at least 1 ArcSOC process to always be running and always consuming memory (60 - 100 MB/each on my box - not exactly insignificant). Windows also has a capped Desktop Heap that can be problematic when starting lots of processes. I have frequently seen clients go down the "lets keep adding map services" route only to find out they quickly hit the top of what their server can support. Each map service would also require its own database connections which may be important to consider.
I would assume there are performance penalties with large numbers of layers in a single service as well. I don't have any information on what that is, but I can't imagine its as costly as additional map services.
When publishing a service, it's always good to consider the target audience and their purposes in the map. Do they need a fast map? Do they need an accurate map? A pretty one? Do they want to swipe things out of the way? Are they going to scribble all over it?
If your layers have multiple different data sources, then grouping the layers that come from similar data sources (either exactly the same, or the same projection, or the same average speed) can work well. Then, you're not waiting for the slowest layer to load up to get your entire map image.
If it is likely that your users will have a specific business need for a bunch of layers, then being able to turn off or fade out the service is handy. It's much easier to draw a whole map image at 50% transparency on the client than it is to get the server to paint it that way.
If labeling and rendering are very important, then having fewer services with more layers will likely work better. Having multiple services render their own labels and then compositing together will result in more label collisions than a single service with lots of layers, since ArcGIS Server won't be able to "plan" where each label goes in the different services.
Similarly, if you are dealing with semitransparent polygons, then having them all in one service will work better for compositing the images, especially if you're also drawing with a photo layer where JPEG compression will help.
Group the fc's where ever possible into subtypes that reduces the overload on the server as well as that gives an opportunity to maintain less number of fc in a map service.