La microinstancia de Amazon EC2 tiene un uso de CPU del 100%

9

Mi micro instancia de Amazon EC2 tiene un uso de CPU del 100% con mucha frecuencia. Solo tengo una instalación de WordPress. Todavía estoy en modo de producción, así que no hay usuarios, pero obtengo el 100% de uso de la CPU.

¿Alguien sabe cómo reducirlo? Recibo notificaciones por correo electrónico de Amazon cada hora debido a que dura más de 300 segundos.

Ya moví mi base de datos a RDS pero no resolví ese problema. Simplemente lo hizo un poco mejor. Antes de pasar a RDS con mi base de datos, mi sitio web siempre se bloqueaba al cargar solo una página web.

Mi mysqld.log da un error de error 12 por eso también hice innodb_buffer_pool_size = 256M en my.cnf pero no traje nada.

Estaría agradecido por cada consejo.

Jaba L
fuente
1
necesita monitorear su instancia para ver qué está sucediendo. No dice qué sistema operativo está utilizando, pero si Linux es rápido y fácil. A largo plazo, debe considerar otra cosa.
user9517
En linux top command, ¿qué proceso está consumiendo su CPU? Presione (Shift + P) para ordenar los procesos según la utilización de la CPU Gracias Sandeep
ZVIK
Gracias @lian! Sí, estoy usando Linux. Entonces, ¿es normal que a menudo aumente al 100% de la CPU? Ya lo estoy monitoreando con una alarma y recibo estas molestas notificaciones de alarma por correo electrónico varias veces al día. ¿Quiere decir que Ec2 no vale la pena, especialmente no con paquetes pequeños solo cuando invierte mucho? Gracias por su ayuda
Jaba L
¡Gracias @ZVIK por tu ayuda! ¿Podría explicarlo un poco más en detalle? Creo que aún no lo entiendo bien. ¿Dónde puedo presionar (Shift + P)? En la línea de comando SSH? Perdón por mi inexperiencia. Otra cosa que parece es que mi Terminal SSH se vuelve muy lenta después de un tiempo. Escribir un comando ssh y obtener una respuesta a veces lleva mucho tiempo, se retrasa mucho. Creo que también se debe al uso de la CPU. Solo reiniciando con los comandos "sudo service httpd stop / start" y "sudo service mysqld restart" hago que vuelva a funcionar más rápido. Pero no dura mucho.
Jaba L
@Jaba L Supongo que hay una pérdida de memoria en el código
ZVIK

Respuestas:

7

Tenga en cuenta que las m2.microinstancias son solo eso: son pequeñas. Cualquier cantidad real de carga los maximizará.

Como @zvik señaló en sus comentarios, debe averiguar qué procesos consumen la mayor cantidad de memoria y / o ciclos de CPU. Recomendó ejecutar top, que es un comando que se encuentra en las distribuciones de Linux. Al presionar Shift-P, los ordenará según el uso de la CPU. Deberá usar esta información para descubrir dónde está el cuello de botella. Por ejemplo, si esto está ejecutando Apache, la configuración predeterminada para Apache puede ser iniciar más procesos de los que es capaz el servidor.

Intente ejecutar topy ver qué comandos consumen la mayoría de los recursos.

Andrew M.
fuente
1
Lo revisé y Apache está aprovechando la mayoría de los recursos. m2.micro realmente se carga tan fácilmente. Pensé que podría usar micro para un sitio de producción pequeño, pero eso es tristemente posible. Gracias por su ayuda
Jaba L
15

Su problema en realidad puede deberse al "robo de CPU" que ocurre en la pila de Amazon (y, de hecho, en cualquier infraestructura virtualizada). Puedes leer más sobre el robo de CPU aquí .

Esencialmente, su VM está inactiva y Amazon está "tomando prestados" algunos de sus ciclos de CPU para dárselos a otra persona que lo necesite: esta es una práctica estándar para un entorno virtualizado donde los recursos del servidor físico como el uso de RAM y los ciclos de CPU a menudo están muy comprometidos .

Para verificar el robo de la CPU, ejecute topy eche un vistazo al %stvalor resaltado aquí:

salida de comando superior

Si este valor no es cero, significa que los ciclos de CPU de su VM están siendo "prestados".

Craig Watson
fuente
1
Muchas gracias @ craig-watson por tu respuesta. Acabo de marcar% st y está entre 0-5%. Gracias por el enlace también fue muy informativo
Jaba L