¿Por qué top y Google Compute Engine me dan dos valores de% de CPU totalmente separados?

5

Así que, como prefacio, no he hecho mucho en Linux desde hace una década cuando estaba en la universidad, por lo que podría estar haciendo algo estúpido.

Sin embargo, para este proyecto en el que estoy trabajando, estoy realizando una prueba de carga en dos máquinas en un escenario específico y tratando de obtener datos de CPU y RAM. Sin embargo, recibo valores muy diferentes entre los datos de rendimiento de Google Compute Engine y los datos de la máquina virtual real.

He estado ejecutando esta prueba de carga durante 10 minutos hasta ahora, y la ejecución topmuestra:

arriba - 17:58:41 hasta 7 días, 10:17, 2 usuarios, promedio de carga: 0.00, 0.00, 0.00

Tareas: 82 en total, 1 corriendo, 81 durmiendo, 0 detenidos, 0 zombies

CPU (s): 0.3% us, 1.0% sy, 0.0% ni, 98.6% id, 0.0% wa, 0.0% hi, 0.0% si, 0.0% st

Mem: 1741288k total, 514704k usado, 1226584k gratis, 146748k buffers

Intercambio: 0k total, 0k usado, 0k gratis, 192572k en caché

Esto me hace pensar que esta operación está utilizando el 0.3% de mi CPU. Sin embargo, mirando el panel de instancias de VM de Google Compute Engine y seleccionando esta máquina exacta) muestra una CPU constante de 16-18% durante los últimos 5 minutos.

¿Hay alguna razón por la que me falta la discrepancia entre los dos?

KallDrexx
fuente
¿Qué tipo de máquina estás usando? Esto puede ser causado por la técnica de virtualización que están utilizando. Por ejemplo, esto se puede observar en hosts sin soporte de virtualización de hardware en Virtualbox cuando configura el límite de ejecución para la máquina (por ejemplo, 50%). La parte superior de Linux le mostrará el 30% de su CPU, pero de hecho sería el 60% de los recursos proporcionados a la máquina. No uso ni tengo experiencia con Google Compute Engine, pero esto puede ser una explicación.
Enbyted