How to calculate availability
Many times I have had discussions about the actual availability of a system. And found out that not everyone has the same understanding of availability and how it is calculated.
So let’s start with defining what availability is. Availability is a metric used to measure the amount of time that a system is available for the intended end user.
How to calculate the availability of a system
Let’s use a simple system that serves a static website. This system consists of two components, a Load balancer and a Webserver.
The availability of the individual components are as follows:
- Load balancer: 99,99%
- Webserver: 99,95%
To get the total availability of the system, you could say that you take the components with the lowest availability and call it a day. Meaning in this example the availability would be 99,95%. This is however not the actual availability of this system because if one of the individual components is unavailable the whole system is unavailable.
To calculate the overall availability of the system you need to consider all individual components. These individual components can experience downtime at different times meaning the total availability is lower than the availability of the component with the lowest availability.
To calculate the actual availability of the system you multiply the availability of both components.
(99,99% * 99,95%) * 100 = 99,940005%
In this example is the total availability of the system 99,940005% which is a bit lower than the lowest availability of the single component.
For more complex systems to overall availability decreases with every component added. See the example below:
(99,99% * 99,95% * 99,5% * 99,9% * 99,9%) * 100 = 99,241523%
As you can see by adding more components to the system the overall availability decreases.