Steps to Maintaining a Healthy MIMS and ArcGIS Server Environment

January 13, 2020 — Tim Pedersen

For my second blog installment, I thought I would touch on a subject that is often overlooked, server health.

On occasion, customers report MIMS ecosystem failures when nothing has changed; supporting data, supporting services, MIMS server or MIMS configuration.  The story is often the same; the system has been running flawless for months and all of a sudden, MIMS and/or field crews begin reporting server or resource access issues.

Often we find one or more of the following:

  • Disk is at a minimal or zero available space.
  • Memory utilization is peaked and not allowing processes to run upon demand.
  • Hardware controllers have failed, or filling event logs with errors.
  • Server performance is sluggish and at times, slowly grinds to a halt.

The list can go on, and on, and on…

Its times like these I like to remind myself of the wisdom of my old friends “Murphy and Dodd”; what can go wrong, will go wrong, and at the least convenient time”.

Proactive IT organizations maintain server health by first implementing a monitoring strategy that includes execution of a regular server maintenance plan.  Some of our customers have the luxury of these resources, while other customers do not.  For those of you without this luxury, I have put together a few simple task that should help mitigate the influence of my old friends:

  • Implement a Regular Server Maintenance Plan
  • Check for Windows Updates
  • Check Disk Space Utilization and Free Space Availability
  • Limit Disk Fragmentation
  • Monitor Memory Allocation and Availability
  • Check Windows Logs for Application and Hardware Issues
  • The Reboot Server Debate

If your organization falls into this category, I recommend that you read on.

Check for Windows Updates

There are many reasons to maintain a frequent Windows Update regiment, mostly due to security concerns. However, Microsoft does make an honest attempt to improve deficiencies in software OS component and hardware drivers that can lead to poor performance.  Many of our customers have corporate policies that dictate a regular security and system update regiment, while other customer simply turn on automatic updates and hope for the best. It has been our in-house experience (especially when maintaining older Windows Server versions), that “Pending” Windows updates have caused unusual behavior (system slowness, sporadic errors in log files), that when run and often requiring a reboot, have magically cleared up.

If your shop falls into the latter group (pertaining to a Windows Updates policy), we recommend a proactive regiment to reducing the length of time Windows Updates are pending.

Check Disk Space Utilization and Free Space Availability

This is one area that I cannot express concern enough. It is vital to the health and longevity of your servers to have a routine regiment that periodically checks server hard drive space available and disk utilization.

Windows hard drives are not just used for storage, they also contain a swap or page file that acts like physical memory. If disk utilization gets above 90%, it can interfere with the swap file, which can severely degrade performance.

A simple disk utilization-monitoring tool built into the Windows operating system is “Task Manager”. Right-click the Windows task bar and choose Task Manager.  Enable “More Details” and choose the “Performance” tab, then click “Disk”; located on the left side.

Low free disk space will often lead to instability and noticeable slowdowns as Windows struggles to keep up with, and safely secure RAM requirements that programs and features need.  In-turn, software services and process may run out of space causing errors that point to areas that are perfectly healthy when running in an environment that provides adequate free space.

Servers generate many log files, and so does the MIMS system. If it is important to keep old log files, consider archiving them to external storage. Otherwise, remove server and MIMS log files semi-frequently, or consider investing in additional disk space.

Windows has offered disk cleanup tools with their operating systems for a long time now.  However, there are many, feature rich third-party tools available for purchase. If you are looking for an inexpensive disk cleanup utility, look into the Windows “Disk Cleanup” tool.

The Windows Disk Cleanup tool is run as either a user assisted GUI or unassisted from the command line. From the command line, run “Cleanmgr.exe”, or as a GUI, click “Start”, select “Windows Administrative Tools”, and then select “Disk Cleanup”. Both tools offer configuration options, the cleanmgr Windows command-line tool provides options to specify that Disk Cleanup remove certain files.

Take a look at the following resources for more information on the use of these tools:

Limit Disk Fragmentation

Disk Fragmentation is a condition in which files become divided into pieces scattered across the disk. Fragmentation occurs when a disk is used frequently (creating, deleting, and modifying files). At some point (especially disks with low available space), the operating system needs to store files in noncontiguous clusters, which results in a slowdown in data access speed because the disk controller must harvest a single file from different locations on the disk. If left unchecked, fragmentation can lead to overheating, which in-turn can lead to disk failures.

Disk Defragmenter is a utility provided with Microsoft Windows, designed to rearrange files into contiguous clusters. Regular use of Disk Defragmenter decreases disk fragmentation, minimizing disk head travel, which reduces the time it takes to read or write a file on disk. In-turn, decreases the possibility of overheating, thus reducing the chances for disk failures while improving disk I/O access speed.

Depending on the version of Windows you are running, Disk Defragmenter runs a little bit different. Refer to the following resources for the system that applies to you:

Monitor Memory Allocation and Availability

As time passes, and our workloads increase, we all face memory issues. For me personally, memory is not the issue; it’s the recall that that becomes more difficult!  The same is true for our computing workhorses we rely so heavily upon to keep our business solutions operating at optimal speed and performance.

Today’s multiprocessing servers do more than run a few programs. Today’s servers run many services that spawn multiple process, requiring simultaneous access to memory segments, consuming vast quantities of system memory at neck-breaking speeds.

For the IT professional driven by resource limitations and cost, allocation of these resources can be a taxing exercise of estimating server requirements by calculating service, process and application needs. To the server administrator and end-user, resource allocation is more liberal, “the more the merrier”!

While there is little affects caused by too much memory allocation (except the one that burdens your pocketbook), a server running with insufficient memory can result in a cascading collage of unfortunate events. A few signs of insufficient memory are:

  1. Files do not open immediately, or programs are slow to load.
  2. Applications report sporadic, unusual errors when there has been no changes to the system or the applications configuration.
  3. The server is using 80 percent or more of its memory for sustained periods.

Sophisticated business solution today rely heavily upon memory resources to maintain operational and performance integrity and reliability.  For example:

  • The MIMS system runs a single controller service that spawns multiple processes to achieve and maintain real-time access to updated information by remote consumers.
  • The ArcGIS Server service spawns one process for each Feature Service hosted by the service. The more feature services available the more server memory resources consumed.

Monitoring and addressing high memory utilization on your servers is a crucial step to improved performance, reliability and integrity of the services they host. At the very least, we recommend you periodically monitor your server’s memory utilization during low and peak consumption time.  A simple, real-time memory utilization-monitor built into the Windows operating system is “Task Manager”. Right-click the Windows task bar and choose Task Manager.  Enable “More Details” and choose the “Performance” tab, then click “Memory”; located on the left side.

As mentioned earlier in this article, if your system is running at or above 80% memory consumption for extended periods, it’s time to look into acquiring additional memory, or distributing high memory utilization processes and services to another server.

Windows offers a more sophisticated tool called “Resource Monitor” that provides the ability to display information about the use of CPU, memory, disk, network, and software file handles and module resources in real time. To learn more about this built-in tool, see A detailed Windows Resource Monitor guide.

Check Windows Logs for Application and Hardware Issues

I must admit, I too am one of those who believes that “if it’s not broken, don’t fix it”, or more commonly “no news is good news”. However, when tasked with the challenge to maintain good server performance and health, the time you spend upfront to obtain all the information you can about the operational integrity of your server system, is beneficial to the bottom line!

I cannot emphasize enough the importance of periodically reviewing the Windows event logs. Granted, the log messages appear overwhelming; with superfluous messages that only a computer science doctorate can enjoy or understand. However, these superfluous messages can help you understand the health of your server at first glance, even if you do not understand the nature or meaning of the information they provide.

For example, the sheer volume and occurrence of one or more “Error” type messages can provide insight into the health or integrity of the server’s application operating environment or server hardware components.  Yes, in many cases “if you don’t notice the result of the error message, then it must be okay to ignore the issue” is the general rule. Nevertheless, every error reported is time and resource consumed by the application or hardware driver to report and log the issue which in-turn, leads to performance, integrity and stability degradation.  Reducing the volume of these errors can only benefit you in the end.  Do you remember my old friends Murphy and Dodd?

Therefore, to maintain a healthy server-operating environment, and to help better understand the condition of your server resources, we recommend reviewing (as well as removing or archiving) the Windows event logs.

Here are a couple tips that will help mitigate the redundancy when time is at a minimum:

  1. You can probably just focus on the “Application” and “System” logs.
  2. Use the “Filter” to view by the type of information you are interested (Critical, Error, Warning…), or the timeframe to which you are concerned.

Did I mention my old friends Murphy and Dodd?

The Reboot Server Debate

Although Microsoft has made advances in server uptime and stability, there still is a need to reboot a server that is exhibiting inconsistent or unusual behavior.  Older Windows Servers may need a more frequent reboot regiment, while it may be possible to allow newer Windows Servers to run at longer intervals.  The devil is in the details! If the server is running at high utilization; disk, memory, network activity and software load, chances are that you will need to implement a regular reboot schedule.

Wrapping it up!

For those well-informed computer administration and IT professionals, this information may have seem elementary and not very useful in part. If you fall into this category, I have one thing to say, “Keep up the good work by keeping those servers healthy”. However, for that computer professional whose “Job One” is not server administration, and secondary or third responsibility is maintaining the MIMS ecosystem. I hope this information will help you improve the MIMS user experience by ensuring you have provided the best, optimal environment at your disposal.

A Framework For Understanding & Keeping Pace With

The Future of GIS

Download It for Free

Tim Pedersen

QA Engineer

What do you think?

Leave a comment, and share your thoughts

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


This site uses Akismet to reduce spam. Learn how your comment data is processed.