Title: Establish a Baseline
Course: CIS 208: Linux/UNIX III: Intermediate System Administration, Networking, and Security ~ For IGNITE Review > Section: Learning Modules

Establish a Baseline

One key element of working with servers is to know what is normal, in other words, establishing a baseline.  This allows a system administrator to know what to expect from a server, to plan for enhancements or upgrades, and to assist when troubleshooting.

While programs like sar can establish a baseline for many resources, it is important to know what services are running and what user expectations are.  For example, with a middleware server's users might expect a webpage to open within 5 seconds.  Individual baselines would be needed for the database server's response, the middleware server's response and the web server's response.  If a complaint arises that "the system is slow," the sysadmin will be able to either find the source or let the user know that the response time is within acceptable limits.

Since some resources relate to the internal operations of the server, these will be managed separately from the user experience.  The sar program will automatically gather and keep 4 weeks of data.  It is good to archive this data where it can be kept for future reference.  This will allow comparison of current data to data from a time more than 4 weeks prior.  This is especially helpful with servers running java where the programs are updated frequently.  The system administrator can provide empirical data showing how java resource usage has changed over a long time frame.  It can also pinpoint when a specific resource showed a significant increase in usage.

The baseline for the user experience is usually managed by custom written scripts.  First, a list needs to be created of requests made to the server.  This may include dns queries, requests for web pages, database queries, and file transfers.  For each type of request, a command line client will establish the connection time for one or more resources.  The scripts will then need to create output showing the time for the event.  A cronjob can then launch a master script which will execute each of the individual scripts.  Ideally the cronjob will run several times a day, and new scripts will be added as users identify new resources to be monitored.