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 ?

| improve this question | | | | |

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.

| improve this answer | | | | |

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.

| improve this answer | | | | |
  • 2
    I would add security to this list. ArcGIS Server security stops at the service level. If you need layer level security you'll need to break your layers into many map services. – Ryan Taylor Nov 18 '11 at 20:10

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.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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