¿Por qué el monitoreo ec2 muestra 100% de CPU y solo supera el 20%?

10

Estoy ejecutando un script de python en una instancia de ec2 que inserta filas en una base de datos en otra instancia. En el monitoreo de ec2 vi una utilización del 100% de la CPU, mientras que top solo muestra el 20% para el proceso de python. ¿Qué le falta a la parte superior? ¿Gastos generales de red?

RickyA
fuente
¿Qué pasa con todos los demás procesos?
Ladadadada
Alrededor del 0% de utilización
RickyA
También estoy en dillima, envío mi reprot de comandos TOP al cliente :)
Manish Shrivastava

Respuestas:

18

Los datos expuestos por a topmenudo son insuficientes o engañosos en entornos virtualizados como Amazon EC2 y el porcentaje informado depende de su tipo de instancia y la utilización del núcleo del procesador subyacente (que generalmente no coincide con el hardware virtualizado que se le presenta desde el hipervisor), entre otras cosas: lo que está viendo probablemente sea causado por el tiempo de robo de la CPU respectivo como se expone en la mayoría de las herramientas de monitoreo de Unix / Linux relacionadas en la actualidad; consulte, por ejemplo, las columnas% steal o st en saro top:

st - Steal Time
La cantidad de CPU 'robada' de esta máquina virtual por el hipervisor para otras tareas (como ejecutar otra máquina virtual).

La publicación del blog sobre el monitoreo de EC2: el caso de la CPU robada proporciona una buena exploración e ilustración de este tema:

Cuando el comando superior muestra un 40% de CPU ocupada pero CloudWatch dice que el servidor está al 100%, ¿qué lado toma? La respuesta es simple (CloudWatch es correcto, la parte superior no lo es) [...]

Tenga en cuenta que esta métrica del hipervisor parece ser (fácilmente) accesible solo en sistemas Unix / Linux, pero no parece ser observable en Windows (todavía), vea mi pregunta ¿Existe un equivalente de Windows del tiempo de robo de CPU de Unix? Para más información sobre este problema.

Steffen Opel
fuente
2
Gracias por la publicacion en el blog. Eso realmente lo deja claro. Es realmente bueno saber esto ya que estoy a punto de lanzar Ganglia, y sería una pena medir las métricas incorrectas. ¡Mide% de tiempo de inactividad!
RickyA
En mi caso, cloudwatch también informa el uso de la red de 3mb / s, pero cuando miro en mi servidor (con iftop, iptraf, netstat, etc.) veo que lo único con una conexión de red es mi ssh en el servidor. Lo que realmente dudo es usar 3mb / s ...
Benubird
-2

Probablemente Amazon verifique la carga y no use el porcentaje de TOP. Si tiene dos procesos en la CPU, pueden utilizarse en un 20%, pero puede tener carga 2.

MartinSVK
fuente
No estoy seguro de lo que quieres decir con la carga 2 ...
RickyA
Puede tener carga del sistema en 2. Dos procesos en la CPU pero con baja utilización.
MartinSVK