lunes, 14 de mayo de 2012

Que es iowait

Todo software necesita de un hardware.

iowait es que tanto se debe de poner en pausa el software esperando que el hardware se desocupe, si esta en pausa equivale a que este detenido, no avanzar en el trabajo y acumulando trabajos pendientes,  es por ello que sube la carga

en el Hardware existen algunos dispositivos lentos (a comparación del procesador) como el disco duro, cdrom, puerto serial, entre otros.

Si mi software dice que almacene un archivo de 5Gb en el disco este estará muy ocupado escribiéndolo, durante ese tiempo el iowait subirá mucho indicando que hay hardware ocupado. Si al mismo tiempo deseo leer otro archivo esta tarea se verá lenta porque el disco esta ocupado guardando la información.

No solo los archivos grandes causan ese problema.  también lo causa el leer o escribir muchos archivos o un mismo archivo muchas veces.

Ejemplos en un servidor web:

cuento con sitio1.com el cual tiene 4000 visitantes diarios (20mil clicks diarios), hardware intel xeon 4 cores un disco SATA y 8G de ram.

En la programación de sitio1.com  se incluyen alrededor de 100 archivos y librerias (muy común en joomla y WP al agregar muchos plugins), realiza 100 consultas a SQL y como es una galeria de fotos se visualizan 100 imágenes por click.

Problema:   carga alta en el servidor, iowait > 40%
Causa del problema:
- accesar muchos archivos a la vez mas de archivos por click (100 archivos + 100 imagenes + consultar base de datos),  por lo tanto el disco duro esta muy ocupado para atender a todas las visitas a la vez.
- Entre las 100 consultas a base de datos se encuentra leer y escribir información.
- Todo el trabajo recae sobre un solo disco duro (Sistema Operativo, Base de Datos, web, logs, etc)

Y si pongo un procesador más grande se soluciona?
NO: el problema es el disco duro, anda muy ocupado atendiendo muchos archivos.



Solución rápida:
-mover la pagina web o base de datos a un segundo disco duro
eficiencia: baja la carga y soportar algo mas de visitas

Solución ideal :
- Sitio o Base de datos en segundo disco duro.
- Optimizar el código fuente y utilizar cache.
- Analizar el diseño de la página para ver si es posible eliminar imagenes
eficiencia: 2-3 veces más visitas.

Lo mejor es ir migrando a algo programado a la medida (eficiencia 10veces más rápido) o hacerse de la idea en gastar mucho en alojamiento.


Aunque lo realmente ideal es contar con varios servidores y balancear la carga entre ellos, con tareas y configuraciones optimizadas para web, base de datos, etc.



Esto solo fue un escenario, antes de hacer algo hay que analizar que es lo que realmente me genera la carga, información en  como detectar procesos que consumen demasiado iowait










1 comentario:

Como bloquera archivos adjuntos que son virus en postfix o plesk

   Como bloquear adjuntos del correo en Plesk/Postfix   1- edita el archivo  /etc/postfix/main.cf   2- busca el parametro mime_header_checks...