Performance Tuning
Home Systems Experience Biography Contact Us


Automated Documentation
Business Continuance
Performance Tuning
System Administration
Web Services

There is no "silver bullet" that optimizes the performance of a UNIX system. Performance tuning is usually done in a panic without a thorough understanding of what is going on. 

There are any number of costly products in the market place that say, "buy me". They are usually cumbersome and worthless unless they are properly installed, configured and maintained. In fact, the overhead involved in running the tool may be worse than the reason that you bought the tool in the first place.

Here are some common sense guidelines to help you keep your system at peak performance:

  • Be Realistic.  Before you purchase a system, write down the purpose of the system, the number of users, amount of expected disk space to be used, the type of applications (client-server, database, web server), etc. This serves as a baseline and helps provide justification when preparing recommendations for upgrades to senior management.


  • Good Systems Administration.  A system that is well maintained will typically show signs of pending problems before panic sets in. Your system administrator must know your system. Many times, what appears to be a performance problem on a UNIX system is really a problem somewhere else. If your network is not properly configured and maintained, overall performance will degrade.


  • Read the Manual.  At least two weeks before the planned installation of any package, have your system administrator read the manual and plan the installation. Have him or her confer with the vendor's technical support team to make sure that there are not any issues that would impact the installation. Sometimes patches need to be installed or kernel parameters need to be changed or the package is not certified to run on your system. The vendor's sales force is not the most knowledgeable group in your vendor's company and your system administrator knows better than anyone else what questions to ask, etc. Make sure that your system administrator installs the software - not the vendor, not the DBA, not the developer. Make sure that your system administrator has a written installation plan. The written plan will keep the focus on what has to be done and when and will help identify problems before they become unmanageable.


  • Keep Patches Up to Date.  A lot of performance problems have already been resolved for you by the system manufacturer. All you have to do is, on a scheduled basis, update your patches to the latest levels.  Set up schedule of installing  patches in development, then test, then production.  Try to run through a full production cycle on the test server before installing the patch on the production server.  Before installation, read the documentation for the patch.  Sometimes there may be special installation instructions or dependencies.  Try to use patches from the vendor that have been proven in the field.  There may be a problem with a very small routine deep within the kernel. No amount of memory or number of CPUs will fix it. Besides, it is a lot more cost effective to keep up with the patches on a scheduled basis.


  • Monitor Metrics Consistently.  Most people's idea of performance monitoring is to take a single snapshot after the event that caused the symptom and make a judgment based on that. UNIX performance metrics are gathered at intervals. If an event occurs between intervals, your snapshot won't pick it up. If you collect data on a routine basis and then review it, chances are that you will see some abnormality. The system can collect metrics by using sophisticated products HP's Measureware products or BMC's Patrol or  the generic sar utility.


  • Monitor The Hardware.  Monitor the hardware status of your system. If you are getting a lot of memory errors or disk errors, you have a problem that must be addressed. A system will usually try several times to read data from a disk before aborting. These repeated attempts contribute to unnecessary overhead.  There are tools that help monitor systems.  Some are very expensive and some are home-grown.  You can write scripts that can do some monitoring and send you an email or page you via a basic modem and telephone line.


  • Don't Run Performance Tools.  Collecting performance data adds overhead to your system. Don't let anyone but the system administrator run performance tools. There is no reason for the average user to run "top" or "Glance" to see what is going on. Even with the information provided by these tools, the user doesn't have all the information necessary to make an informed decision. Also, these tools add substantial overhead to the system, impairing its performance.


  • Schedule Regular Downtime and Make It a Priority.  Every system needs to be rebooted on a regular basis. This reboot process will get rid of all the fragmented memory, zombie processes, etc. Not all programs and software clean up after themselves when they terminate. Having memory that is highly fragmented is like having no memory at all.

The foregoing won't make your system fly as fast as a jet fighter but it will go a long way toward providing exceptional performance all the time at a nominal cost in terms of dollars and sanity.