Wednesday, August 5, 2009

6 ways to optimize ArcGIS Server

I wrote a previous post about ArcGIS server performance part1 where I focused on the development reasons of why ArcGIS Server Performance is degrading. In this post though I'm going to list a quick methods I usually use to boost the performance.

We recorded new episodes dedicated just for teaching ArcGIS Server, click here

Here I compile 6 ways to optimize ArcGIS Server

Optimizing ArcGIS Server
In my experience, ArcGIS Server performance degrade is mostly due to the "bad" customization of the product and adding some tools that just don't work in harmony with ArcGIS Server's black boxes. I already talked about this in the first post.

I would try these tips to increase the performance

1. Clear logs
The larger the log file get the more time it requires to update, so cleaning it from time to time slightly increase the performance. Remember those files don't contain errors only they contain every single context releasing and creation story.

2. Schedule a service to restart the SOM
Create a batch file to restart the Server Object Manager service every 4 hours or so to release any hanging server contexts.

3. Use IPs instead of DNS for the SOC machines configurations
When you add SOC machines to the SOM, its is a always better to use the Network IP directly instead of the hostname. Locating the host name takes fraction of second each time a request is needed. Sum that up and you have an acceptable performance.

4. Server Object Parameters
This is the sexy part, those parameters are so important that If tweaked properly, they can tremendously increase your performance.
I loved this guide from ESRI site.

5. Minimize Number of "ON" layers
If you're creating your Server object from an MXD document make sure that you turn off all the layers by default and make only the major fast-loading layer on (if your client is ok with that).
Lets say you have 5 layers Water Distribution, Water Transmission, Electric Distribution, Electric Transmission and Landbase. I would turn all the layers off and enable the Landbase layer only, then save the MXD.

This will load the your document much faster.
5. Layer file Scale Dependency
It is really important to set the scalability of your layer files correctly, because this will tremendously boost your performance of your Web app. Just make the busy layers with a smaller scale so they will appear as you zoom in.

6. Enterprise SDE Optimization
If your MXD document is reading data from an enterprise SDE geodatabase, make sure that the SDE server name is saved with the IP instead of the hostname. SOC machines will suffer trying to resolve the hostname to an IP each time they want to connect to the SDE.

Hope those were useful.