jueves, 17 de mayo de 2012

como reducir iowait

El mayor problema de iowait se produce por el disco duro,  si el disco esta muy ocupado las demás tareas se verán lentas.

Son 2 fuentes que comúnmente generan el problema:

1- Falta de RAM
esta es obvia cuando tienes mucho swap, para comprobarlo hay que ver cuanta ram tenemos libre y cuanto ocupado en swap, para ello  ejecuta

# free -m
             total       used       free     shared    buffers     cached
Mem:          3431       3020        410          0        124       1755
-/+ buffers/cache:       1140       2290
Swap:         2047         63       1984


memoria libre para trabajar, hay que procurar que una vez iniciado todos los servicios este libre mínimo el 25% de la memoria 

memoria swap esta hay que procurar que este siempre al minimo, lo optimo es cero  y a partir de 300-500M puede ser tema de preocupación,  

en este caso no hay swap y suficiente memoria libre,  así que la solución no es instalar más memoria.  o ver el proceso que consume demasiada RAM y existe algún parámetro para personalizarlo siempre cuidando que no sea indispensable para su deempeño

un modo de ver la ram ocupada es con

# top

una ves iniciado presionen shift+M  y se acomodara por consumo de memoria y verán algo similar a:


sks: 211 total,   2 running, 209 sleeping,   0 stopped,   0 zombie
Cpu(s): 16.3%us,  4.2%sy,  0.3%ni, 76.4%id,  2.2%wa,  0.0%hi,  0.5%si,  0.0%st
Mem:   4037012k total,  3935720k used,   101292k free,    55408k buffers
Swap:  1052248k total,    37844k used,  1014404k free,  2175768k cached


    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 788501 mysql     15   0 1464m 680m 5920 S 40.6 17.3 534:46.35 mysqld
 979804 apache    15   0 1261m 207m  48m S  0.0  5.3   0:01.31 httpd
 977582 apache    15   0 1245m 197m  51m S  0.0  5.0   0:01.95 httpd
 979747 apache    15   0 1260m 191m  34m S  1.7  4.9   0:00.97 httpd
 977581 apache    15   0 1245m 189m  44m S  0.0  4.8   0:01.59 httpd
 979760 apache    15   0 1242m 185m  42m S  0.7  4.7   0:01.01 httpd
 979722 apache    17   0 1245m 185m  40m S  0.3  4.7   0:01.15 httpd
 979810 apache    16   0 1242m 180m  37m S  0.0  4.6   0:00.55 httpd
 979840 apache    16   0 1258m 177m  20m D  0.3  4.5   0:00.65 httpd
 981013 apache    15   0 1188m 177m  34m S 13.3  4.5   0:00.40 httpd
 979762 apache    17   0 1243m 171m  27m D  0.7  4.4   0:00.94 httpd
 981005 apache    15   0 1242m 165m  23m S  2.3  4.2   0:00.30 httpd
 981012 apache    15   0 1226m 137m 5192 S  2.0  3.5   0:00.06 httpd
 967097 root      15   0 1164m 134m  10m S  0.0  3.4   0:03.88 httpd
 981014 apache    18   0 1165m 129m 4868 D  0.0  3.3   0:00.00 httpd
 967107 apache    15   0  395m 119m  468 S  0.0  3.0   0:00.00 httpd
 977006 root      19   0  207m  99m 2352 R 96.4  2.5   0:11.71 perl
  18935 root      17   0  250m  25m 4720 S  0.0  0.6   2:03.93 sw-engine
  18943 root      15   0  334m  24m  956 S  0.0  0.6 137:04.24 sw-collectd
   8295 named     15   0  418m  21m 2056 S  0.0  0.5   9:33.46 named
 295584 root      15   0 63780  19m 1732 S  0.0  0.5   0:03.02 miniserv.pl

en donde observan el porcentaje de RAM ocupada por ese proceso, en este caso MySQL consume el 17.3% que equivale a 4G*0.17 = 0.68G = 680M de RAM




2- Alta escritura y/o lectura de archivos.

Para detectar que procesos son los responsables vean como detectar procesos que consumen iowait o instalen  iotop

Imaginemos que existe un alto iowait en base de datos

Primero consultemos si la aplicación que afecta tiene parámetros para optimizar su rendimiento, los parámetros que mas impactan en iowait es la cantidad de procesos o usuarios simultáneos y cache en RAM; si no existe mas que optimizar por configuración vemos opciones por hardware

Supongamos que  actualmente en un solo disco duro se encuentra sistema operativo, web, correo,  base de datos;  una solución es agregar un disco duro adicional preferentemente de alta velocidad  y mover la base de datos a ese disco, asi el trabajo de lectura/escritura  se distribuirá dando como resultado disminuir el iowait.


Aunque estos dos puntos comúnmente resuelven el problema de iowait aun así hay que buscar el origen real del problema,   buscar existe un error de programación en nuestra aplicación o simplemente ahora la carga de trabajo es mayor y hay que comenzar a pensar en optimizar nuestra aplicación  posiblemente mediante el uso de cache


y en el caso de hosting compartido una buena herramienta para controlar el uso de recursos es cloudlinix el cual limita los recursos para evitar sobrecargas por parte de cpu o ram; compatible con servidores planos, cpanel y plesk.

El panel de plesk ademas cuenta con una opción para limitar la cantidad máxima de conexiones, ayudando a controlar el sobreuso.




No hay comentarios:

Publicar un 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...