30th August, 2016
Health checks are an essential part of a DBAâ€™s skill-set. Being able to accurately analyze information and parameters on any database or system in the DBAâ€™s care is an essential part of the DBAâ€™s job, therefore itâ€™s important that tried and tested health check procedures are implemented as soon as possible on any supported system.
So what do we mean by health checks? If you were heading to your local GP for a health check, you would expect them to take a look into how you feel now, how well you can do things, and what might happen in the future. These three things can be translated into Systems and Databases quite easily: Availability, Performance, Scalability.
In the first instance, Availability is the most important thing to check. By this we mean: does your database have enough space? Does the OS have enough space? Is there enough space for dump files and logs? Do you have a consistent backup available? These are just a few things to consider but there are many more that you will have to ensure are available to ensure your system can actually run. Having a solid health check script or set of procedures can ensure you will see the information at a momentâ€™s notice.
The second thing to consider, is how all the above things are performing. Performance is not merely a measure of if things can be done, but, how well they can be done. Performance can be quite a broad subject but the basics of what needs to be understood is related to â€˜How quickly and easily can I get to my database?â€™. This could be learning about how I/O stats at a database and OS level can affect read and write query times, investigating CPU utilization as well as load and queue sizes, RAM Usage and swap space, database deadlocks, different segment types in the same tablespace, network usage statistics and many more. Itâ€™s important to health check these parameters so you can set the benchmark for your system at a given time. You can then tune and set parameters based on this benchmark before performing another health check to see whether you have made things better or not. Itâ€™s also important to mention that performance will be driven by what the business/end-users deem as good/bad performance, so itâ€™s just as important that you interact with as many end users as possible to aid your understanding on performance on any given system.
Finally, it is always important to remember scalability. It is a wonderful thing to have a database that performs without complaint from end users and itâ€™s a great day for a DBA when you can sit back and know that the system is up and running smoothly. But what happens if you take on a new application into your database and the server doesnâ€™t have the capacity to take it on? Or you take on several new clients and your network interface canâ€™t handle the traffic? If you have performed a thorough health check, you should know about these limitations already. Health checking for the future is just as important as health checking for now. For instance, performing a health check on memory utilization to see how it is coping now should also give you a good indication of how it would perform if your traffic doubles.
To summarize, Health Checks are there to provide you with an insight into how your system is coping now. But just as importantly, they are they to tell you how they will cope in the future. Just because everything is running smoothly, doesnâ€™t mean a Health Check should be ignored. After all, the best DBAâ€™s specialize in being proactive, not reactive.
RDB Concepts can provide in depth Health checks for all of your environments and we can give you a detailed insight into to how your system is performing, and how it will perform as your business grows. For more information on this, please contact us.