Chad Manaton wrote:Hello,
Thanks for a very useful site. I have a suggestion for a new converter that I think would be very useful to many people.
I just received a proposal from a company that stated that they provided 99.5% uptime last year. I was curious what that would equate to in days, hours, minutes. I did some searching on the internet and didn't find anything that useful. In the IT industry these sales people will throw around the "nines" phrase. If someone says they have 99% uptime, it sounds good at first but if you do the math, it might not be very good depending on what it is. Below is an example of the "nines".
90.000% Uptime = "One Nine" (up to 36 days of down-time per year.)
99.000% Uptime = "Two Nines" (up to 3.7 days of down-time per year.)
99.900% Uptime = "Three Nines" (up to 9 hours of down-time per year.)
99.990% Uptime = "Four Nines" (up to 53 minutes of down-time per year.)
99.999% Uptime = "Five Nines" (up to 5 minutes of down-time per year.)
I thought it would be nice to have a converter where you put in a percentage (ex. 99.7%) and a time frame (ex. 1 month, 1 year, etc.). The results would show how many minutes, hours, days that would be.
It would also be nice to have a reverse converter where if I was to tell someone that a server was down 6 days last year, I could state what the uptime percentage.
Thanks for your consideration.
Chad Manaton
The methodology to do this is fairly straightforward.
To calculate the number of Days/hours/minutes of downtime per year based on a certain uptime percentage, what I would do is take the number of seconds in a year (3.1536e7) then multiply it by 1-the fraction of uptime. This will give you the number of seconds of downtime.
For Example, if you have 99.5 % uptime:
3.1536e7 * (1.0 - 0.995) = 1,657,680 seconds downtime
To report days take the integer value of the seconds of downtime divided by 86,400 seconds/day
157,680 seconds / 86,400 = 1.825 days = 1 day.
To report hours, take the value of downtime divided by 86,400 sec/day and subtact the number of days times 86,400 and multiply that fraction by 3600 sec/hour
157680 seconds - (1 day * 86400 seconds/day) = 71,280 seconds / 3600 seconds/hour = 19.0 hours = 19 hours
Finally to get minutes, take the seconds of downtime, subtract the number of days times 86,400 sec/day plus the number of hours times 3600 sec/hour, and divide the remainder by 60.
157680 seconds - ((1 day * 86400 seconds/day) + 19 hours * 3600 seconds/hour) / 60 seconds/minute = zero seconds.
Whew... Its a lot easier to do using the Day(), Hour() and Minute() functions in excel.
To convert the number of days/hours/minutes per unit of time to an uptime number, You'd first calculate the seconds of downtime by taking the sum of the number of days times 86,400 plus the number of hours times 3600, plus the number of minutes times sixty. You'd then divide that number by the number of seconds in your time of interest (be it a year, a month, a week, etc.)
Subtract this value from 1, and multiply by 100 and you'll have the uptime percentage.
For example if you had one day, one hour and one minute of operation, and had two hours and one minute of downtime, you'd get:
Downtime:
(0 days x 86,400 seconds/day) + (1 hour x 3600 second/hour) + (1 minute x 60 seconds/minute) = 3660 seconds
Uptime:
(1 day x 86,400 seconds/day) + (1 hour x 3600 second/hour) + (1 minute x 60 second/minute) = 90060 second
3660 / 90060 = 0.046396
1.0 - 0.0.04396 = 0.95936
0.95936 * 100 = 95.936 % uptime.