Logo Lainformacion.com
< Les Blogs 2.0
Pecado >

Uptime: Funcionando al 99%

Cuando se trabaja en proyectos informáticos hay un valor conocido como el uptime o tiempo que un ordenador (o sistema, o sitio web en general) ha estado funcionando sin interrupciones. No estoy del todo seguro de cuál es la traducción más aceptada, pero podría ser «disponibilidad» (algún ingeniero que por favor me corrija). Para que se entienda mejor: conseguir un uptime alto es necesario en algunos proyectos y sistemas que requieren lo que se denomina «alta disponibilidad», que es ligeramente de estar construido «a prueba de fallos». Se puede pensar en los ordenadores de un avión, una torre de control, que necesitan un funcionamiento ininterrumpido y sin fallos. O, por hablar de algo con menos peligro para las vidas humanas, los sistemas de bancos, la Bolsa o un comercio en Internet, donde tener un sistema de pagos o una web caída significan pérdidas de ventas y de dinero.

Hay diversas técnicas para mejorar la disponibilidad de un sistema como utilizar redundancia, sistemas escalables, balanceos y otros inventos para evitar problemas, excesos de carga y fallos de diversos tipos y reducir así el tiempo en que un sistema está inactivo (también llamado downtime).

Hay geeks que disfrutan viendo altísimos datos de uptime (también es un comando de Unix) de su sistema operativo, incluso hay quien lo pone en su firma como señal de lo bien que funciona. El iBook en el que escribo esto marca ahora 3 días y medio de uptime. El otro día el servidor donde se aloja Microsiervos marcó 24 días de uptime y ciertamente dábamos palmas de alegría (por desgracia tuvimos que reiniciarlo para actualizar unas cosillas).

Normalmente se habla de uptime en porcentajes como técnica marketoide para impresionar en los folletos publicitarios. Un uptime del 99% quiere decir que a lo largo del tiempo el 99 por ciento del tiempo está funcionando y sólo un uno por ciento caído. Aunque un 99 por ciento parezca mucho, pensándolo mejor quiere decir que un ordenador que deje de funcionar unos tres o cuatro días al año tiene un uptime del 99% lo cual en muchas situaciones no es aceptable - ni para el ingeniero ni para quien usa el servicio, basta imaginar tu ordenador o línea de teléfono estropeada tres días al año. En la industria se «añaden nueves» para hablar de sistemas con un uptime del 99,9% (tres nueves), del 99,99% (cuatro nueves), etc. A partir de cinco nueves (99,999%) se considera «alta disponibilidad». Seis nueves son un funcionamiento continuo con una caída de sólo tres segundos al año, y más allá casi está fuera del límite de la percepción humana. Esto ha dado lugar que a veces se hable del mito de los nueves como una exageración del márketing sin mucho sentido real. Encontré una anotación curiosa sobre esto y sobre algunas webs y servicios actuales:

What is 99% uptime anyway? - en No escales: el uptime del 99,999% uptime es sólo para Wal-Mart se menciona que en 37signals está encantados con un uptime del 98%, y que el coste de mejorarlo no merece la pena. [Allí se habla de que para empresas como un Wal-Mart, que equivaldría a El Corte Inglés, sería un verdadero problema tener 30 minutos parado su sistema de cobros con tarjeta de crédito en plena campaña de rebajas, por ejemplo - perderían literalmente millones de dólares]. Lo que hay en la tabla a continuación sería un resumen de lo que se consigue al «añadir nueves». Como regla general, se suele decir que cada nueve que se añade al uptime también añade un cero al coste del proyecto:

UptimeTiempo perdido al año
98%7,3 días
99,0%3,7 días
99,9%8 horas
99,99%1 hora
99,999%5 minutos

Personalmente, creo que la medida del uptime sirve más para medir la fiabilidad y la redundancia que para medir la escalabilidad, y soy un poco escécptico respecto a la gente que habla de esto.

En el resto del artículo se explica que muchas veces la sensación para el usuario no tiene nada que ver con el famoso «valor del uptime». Por ejemplo en la Web no es lo mismo que un sistema se caiga a las tres de la mañana de un sábado cuando apenas habrá gente usándolo a un lunes al mediodía. El valor tampoco dice nada sobre fallos parciales (tal vez el sistema estaba «arriba» pero no funcionaba del todo bien) e ignora cuando un sistema funciona aunque sea demasiado despacio como para resultar utilizable, típico problema de algunos servidores demasiado lentos o sobrecargados, que aunque estén «arriba» durante una semana apenas se pueden utilizar de lo lentos que van.

En general parece que teniendo en cuenta ese factor de coste ×10 para ganar unas pocas horas más de disponilidad a la semana o al mes no tiene sentido excepto para sistemas muy críticos, y que la gente de 37siglas utiliza bien el sentido común para explicar que algunas veces no es ningún drama si ciertos servicios están «parados» durante algunas horas a la semana o si fallan. Se me ocurren algunos representantes de la famosa Web 2.0 como Technorati (que funciona muy irregularmente) o Flickr con sus famosos «masages», incluso Blogger tuvo sus malos momentos - tal vez encajen en esta idea. Para estos servicios mejorar el uptime no debe servir de mucho en la práctica: siempre puedes volver luego a hacer esa búsqueda o subir esa foto, y en cambio añadir más máquinas o sistemas extra resultaría tal vez carísimo.

(Vía Feh! v2.)

31 comentarios

#1 ping Zor

No te lo tomes a mal, pero 24 dias de uptime en un servidor de producción, no es para dar palmas de alegria, es para dar de hostias al administrador del sistema.

#2 ping Victor Bracco

éste tipo de post, son los que más me gustan de Microsiervos.

#3 ping Hugo

No estoy de acuerdo en que para añadir un 9 se requiera multiplicar por 10 los gastos.

Ejemplo:

nuestro sistema tiene un uptime de 99.9 %, es decir, falla un 0.1

Pues bien, clonamos nuestro sistema (que en el peor de los casos supondría multiplicar los costes por dos, aunque esto en la práctica sería mucho menor gracias a los descuentos por pedidos, uso del mismo personal, etc.) y que cuando uno falle entre en funcionamiento automáticamente el otro.

Resultado, nuestra tasa de fallos cae de 0.1 a 0.1^2 = 0.01, por tanto, el nuevo uptime es 99.99

Un 9 más sólo duplicando los costes iniciales.

¿Llevo razón o me he colado en algo?

#4 ping MeAndBobbyMcGee

Mi USR 9106 lleva ahora más 43 días, los mismos que el viejo toshiba pentium iii con xp que me sirve de servidor interno y esclavo de mulas, torrentes, y demás trajines varios (que por cierto se conecta wireless ya que está encerrado en un altillo en la cocina a donde sólo llego con escalera). Y espero que así siga... pues me daría mucho la mala tener que coger la escalera otra vez.

#5 ping xEro

un pequeño error
"proyectos y sisrtemas que requieren"

#6 ping Anonymous

Sobre esto del uptime yo vivi en mis carnes lo que vale. Se me cayó el rack de electricidad de un carrefour y el caos que se formó durante esos 30 minutos no os lo podeis ni imaginar, ni remotamente.

Hice como 2 km corriendo despavorido de la sala de servidores a caja central, el director persiguiendome tirandome de la manga, las cajas en modo manual sin enterarse nadie, media plantilla de pies cuchicheando cagandose en el responsable (que aparentemente era yo), en caja central empieza a sacar manuales de actuacion sin que eso arregle nada, las colas enormes de clientes en las cajas, en la sala de servidores sensacion desertica y solo funciona el aire acondicionado (uptime ¿99,99%?), me llaman al movil... LOS TELEFONOS NO FUNCIONAN aqui es cuando dices ohhh! y seguido te cagas en el nuevo sistema VOIP, el tecnico de mantenimiento dice que no sabe porqué no va la electricidad y tu te preguntas porqué no se han activado los enormes SAI, el director te dice que lo arregles como sea...

Al final el problema fue una mala instalacion, los SAI llevaban 6 meses mal enchufados y creiamos tener un uptime de 99,999% jejeje fue divertido, salvo que si no se llegase a arreglar en menos de 30 minutos, se podrian perder 5000 euros cada hora y contando :)

Yo el uptime lo mediria en dinero, en serio.

#7 ping Nargothic

Trabajo en la Intervención General de la Administración del Estado, y lo deseado es normalmente un 99.9%, es decir, que esté "caido" como mucho 8 horas al año.

En otras palabras, desean que nunca esté caido, pero si se cae (esperan que no más de 1 vez al año) se solucione en menos de 8 horas.

En muchos casos, cosa imposible.

#8 ping Anonymous

sisrtemas ?

#9 ping AOH/Rasczak

Es algo más que curioso enterarse de todas estas cosas, yo acabo de hacerle la estadística a mi ordenador (y por tanto a la mula, claro). Y tengo que reconocer que creo que siendo un sistema con WinXP está estupendamente dentro de los 98% (y esperad que me compre un SAI decente).

Vale, es un comentario que no aporta nada, pero si me callo reviento.

#10 ping Benjamí

weblog.bitassa.net:

$ uptime
09:22:41 up 105 days, 17:58

La actualización de un kernel tuvo la culpa, por lo demás no suele tener problemas. Es compartido.

#11 ping Epaminondas Pantulis

#3: La redundancia hardware es parte de la solución, pero no lo es todo. No basta con duplicar las máquinas, todos los *datos* de tu negocio tienen que estar ahí y ser consistentes cuando la máquina de respaldo asuma el trabajo tras caerse el servidor principal.

Lo cual nos lleva a RAIDs de discos, replicación de bases de datos... y los gastos comienzan a elevarse.

#12 ping Ocelot

"Hay diversas técnicas para mejorar la disponibilidad de un sistema como utilizar redundancia, sistemas escalables, balanceos y otros inventos para evitar problemas, excesos de carga y fallos de diversos tipos y reducir así el tiempo (...) "

¿dónde se podría investigar más sobre ese tema en particular (técnicas para mejorar la disponibilidad)?
Simple interés (o curiosidad jeje)

Gracias!

#13 ping Epaminondas Pantulis

#13: Prueba a buscar «high availability» en Google.

#14 ping mestebanez

Felicidades Alvy, un señor artículo.

#15 ping Luiso

51 días de uptime, me estoy haciendo mayor, antes tenía uptimes mejores, no se que me esta pasando. Recuerdo que hace tiempo había había un parche para parchear el kernel y cambiar el uptime, no se si existirá pero los kernels BSD en general se salen con el uptime: http://uptime.netcraft.com/up/today/top.avg.html

#16 ping Alvy

Para #1 y #16 solo comentar que lo de los 24 días nos parecía mucho porque cada dos por tres instalamos algo y le solemos meter un reinicio por obligación (o por si acaso a veces), por eso nos pareció sorprendente pasar de una semana sin resetearlo.

También durante una época nos dio la impresión de que los propietarios del server en el hosting que tenemos (es compartido, de esos virtual-dedicado) lo reseteaban todos los domingos de madrugada (tal vez como medida de seguridad o algo así, no lo sabemos) y se cortaba unos 30 segundos que no era nada, pero estropeaba la continuidad del uptime digamos.

#17 ping Zor

No se que plataforma estais usando. Si se trata de Windows, es lógico que haya que reiniciar para aplicar ciertos parches. En Linux con acceso al shell por parte de los usuarios, se entiende la necesidad de actualizar el kernel de vez en cuando, pero reiniciar por obligacion o por si acaso... No se, quiza yo veo las cosas de forma diferente. Hay casos en los que lo que me da miedo es que una maquina tenga que reiniciar.

Lo que no me parece bien es la gente que vende muchisimas maquinas virtuales en maquinas que no estan preparadas para esa carga, y la solucion consiste en reiniciarlas cada X dias o cuando algun proceso ha dejado la maquina parada.

#18 ping blue

blue@elm[~]$ uname -a
Linux localhost 2.6.12-gentoo-r1 #1 PREEMPT Sat Sep 3 22:37:57 CET 2005 i686 AMD Athlon(tm) AuthenticAMD GNU/Linux

Y cuando exista algún método fiable y facil de implementar, creo que no necesitare reiniciar más xD

#19 ping Klian

Sólo 24 dias de uptime ? Donde os alojais ? :D

#20 ping Wikier

El modesto servidor de AsturLiNUX ahora mismo tiene 75 días de upload, aunque ha rozado los 300 alguna vez. Si bien es cierto que en noviembre recibó 14 veces menos de visitas que Microsiervos.

#21 ping igece

¡Uy! Pues entonces debo ser un afortunado, porque mi proveedor de alojamiento me da un 100% de uptime (jejeje, no creo que se lo crean ni ellos).

#22 ping Taikochu

Muy buen articulo Alvy. Estoy de acuerdo con #2 en que estos son el tipo de post que mas me gustan de microsiervos. Y por dar un ejemplo de un servidor en Downtime el de Gmail ahora mismo, que para mi esta caido(espero no sea culpa de mi ISP). alguien mas no puede leer su correo de Google?

#23 ping Merodeador

Existe un comando aun más geek llamado "uprecords". Esto es lo que hace ;)

# Uptime
----------------------------
-> 1 290 days, 22:08:42
2 228 days, 00:14:12
3 1 day , 21:56:07

Estos uptimes son de un servidor. Ahora viene otro.

# Uptime
----------------------------
1 123 days, 19:41:18
2 98 days, 17:16:18
3 78 days, 00:21:28
4 69 days, 20:56:51
5 47 days, 01:01:50
6 41 days, 23:42:44
7 41 days, 04:05:12
-> 8 27 days, 17:47:46
9 19 days, 09:15:43
10 18 days, 19:24:32

Sí, disfruto viendo mis uptimes xD

#24 ping Orlok

#6, a mi me paso parecido en un supermercado de Estella (hace un par de años), tenían el servidor redundante, pero mientras arreglaba uno ... casco el disco duro del otro ... IMPRESIONANTE ... (luego algunos se ríen de las leyes de Murphy) el resultado fue parecido al tuyo ... todos corriendo de un lado para otro, las cajas paralizadas ... la verdad es que los servidores aquellos eran del pleistoceno, así que quizás tampoco fue tan raro ... después de media hora conseguimos que funcionase uno de los 2, y luego ya con calma recuperamos el otro...

#25 ping Oink!

24 días de uptime es una cantidad bastante baja. La mayoría de las empresas no reinician las máquinas así como así. Otra cosa son las aplicaciones, que aún hay muchas que requieren reinicios para modificar según qué cosas (y que, reconozcámoslo, se pegan unas galletas del 15). El tiempo de disponibilidad (que sí que se usa en jerga habitual, al menos en mi curro no dejan de gritarnoslo los clientes) normalmente se jode por problemas en las aplicaciones, no por estar parada la máquina (cuyo tiempo de uptime sigue corriendo como si nada).

Lo de los procesos que dejan tostada la máquina... será en Windows, en Unix, afortunadamente, sigue existiendo el comando kill, que hace maravillas! ;D

#26 ping Oink!

#6 Yo el uptime lo mediria en dinero, en serio.

El caso es que se mide en dinero! :D Lo que te pasó a ti ocurre a diario (y no hablo de "Automoción Manolo", no. Empresas de las gordas). Y lo malo no es cuando se jode un rack o dos discos duros, lo malo es cuando se jode el aire acondicionado y no lo tienen replicado. Se va al traste todo el CPD (sí, suena a chiste ¿verdad? ¡pues ocurre!)

#27 ping Yago

Estaba leyendo bash.org y me he encontrado esto:

#583526 +(266)- [X]
Windows users posting their uptime... That's like a chinese dicksize competition.

No se, me ha hecho gracia =P

#28 ping Davidrf

fw0:/etc/fw.d# uptime
14:01:46 up 425 days, 20:11, 1 user, load average: 0.10, 0.05, 0.01

#29 ping JarFil

#1 Zor: 24 días no tiene por qué ser algo malo. Con un sistema redundante se puede tener servicio hasta del 99,99% sin llegar a "uptimes" de 1 día (reiniciar una máquina a una hora, la otra a otra).

Personalmente en casa mi record de uptime está ahora mismo en 57 días, y me parece una locura que no pienso repetir. Me parece mejor hacerles a los equipos un chequeo de rutina una vez al mes, que mantenerlos día y noche hasta que caigan sin ningún aviso.

#30 ping Alex

No hace mucho (creo que hasta hace 2 años) eBay no funcionaba los viernes por la mañana (hora española) por mantenimiento. Cada viernes, podías ver los artículos, pero no podías pujar en ellos.
Vete tu a saber qué estarían haciendo...

#31 ping Innuendo

El tema es que en los años bisiestos todas estas cuentitas se van al tujes, jej.

Saludos