0
Wordpress en AWS se cuelga

Solved 4 Respuestas 16 Views
Gente, buenas tardes: Estoy teniendo el siguiente problema que excede mi conocimiento:

Tengo una página web hosteada en AWS, la misma tiene un Wordpress con LAMP.
Ultimamente se esta colgando el proceso de la base bastante seguido, con un reinicio de los servicios alcanza, de igual manera probamos con un reboot pero el problema persiste. La instancia en AWS es bastante chica 512 Mb de RAM y 1 core. Tal vez el problema viene por ahi.
Tambien tengo dudas acerca de la fragmentación del disco.

Una prueba que realizamos fue dehabilitar el wp-cron.php y funcionó y la página funcionó perfecto.
Pero al hacer algunas request a la pagina (apretando F5 varias veces se vuelven a colgar los servicios).

Alguien me puede tirar algun consejo o algún script que ejecute cada vez que se cuelguen los procesos.

Desde ya muchas gracias.

4 Respuestas

1
Mejor respuesta
Suena a que el problema viene de la base por lo que contás. Estaría interesante ver cómo está el server cuando esto pasa (memoria, IO de disco, uso de CPU, etc). Podés hacer

- free -m (para ver la memo, y en especial ver si estás usando swap)

- iostat -x 2 (se va a ejecutar cada 2 segundos, stats completas de operaciones de disco)

- top -b -n X -d Y (corre top en modo batch X veces cada Y segundos. te va a dar info de uso de CPU y demás)

Con la data que hay se complica hipotetizar más, pero igualmente me suena a que estás corto de recursos, en especial RAM.
respondido por godlike (8,550 puntos) Mar 31, 2016
seleccionada por Monduza Abr 6, 2016
2Comentarios
comentado por Monduza (1,940 puntos) Mar 31, 2016
Para mi tambien estoy corto de recursos.
Tengo una imagen del top, cuando se cuelga la pagina el %wa del top suele estar por encima del 80% al igual que el uso del CPU, los procesos de apache y mysql no estan consumiendo mas del 1% en todas sus instancias.
el Stealth del cpu nunca pasó el 1%
comentado por godlike (8,550 puntos) Mar 31, 2016
Eso es 80% del tiempo del CPU 'perdido' en esperar por el acceso a disco. Fijate primero si no estás usando swap en ese momento (con free -m). Si no estás usando swap, habrá que ver la salida de iostat a ver qué onda. Si estás usando swap, pero en realidad tenés memoria libre, por ahí ajustando el parámetro de kernel vm.swappiness (bajándolo a 10 por ejemplo) obtenés mejoras: https://es.wikipedia.org/wiki/Swappiness
0

Te esta morfando los recursos mysqld, probá configurar alguna herramienta de cache como W3TC o algo más groso como ngingx o algo que haga cache en disco.

La solución no es muy elegante pero, antes usaba algo así que encontré en stack

  1. Login to your server with SSH
  2. Type crontab -l to display list of cron jobs,
  3. Type crontab -e to edit your crontab,
  4. Add 0 4 * * * /etc/init.d/mysqld restart to restart Mysql everyday at 4 AM,
  5. Add 0 5 * * * /etc/init.d/httpd restart to restart Apache everyday at 5 AM and
  6. Add 0 24 * * * /etc/init.d/httpd restart to restart Apache everyday at 12 AM
  7. Save your file,
  8. Recheck with crontab -l
respondido por tincho Mar 31, 2016
0
A mi me paso lo mismo con drupal en digital ocean, cuando el sitio se cargaba se caia mysql. La solucion fue ponerle swap al vps que no tenia y ajustar un poco la configuracion de memoria de mysql.

Saludos
respondido por luigibalzani (10,530 puntos) Mar 31, 2016
1Comentarios
comentado por luigibalzani (10,530 puntos) Mar 31, 2016
Con esto podes calcular el consumo de memoria de mysql:
http://www.mysqlcalculator.com/
1
Con 512 de ram, y si no tenes swap, es muy probable que se este invocando el Out of memory Killer y te este mantando mysqld.

Fijate los mensajes en dmesg si tenes algo relacionado con OOM Killer.

Probablemente sea eso. Vas a tener que tunear la cantidad de childs/workers de Apache, Si podes pasarlo a mpm_worker mejor todavia.
respondido por kri3v (2,390 puntos) Mar 31, 2016
...