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