Confundido por los valores de la CPU en el comando 'top' de Unix

11

En la captura de pantalla a continuación, se informa que la CPU general es del 3%, pero se informa que el proceso mysqld usa el 57%. ¿Es este el 57% del 3% general y, por lo tanto, mysqld solo usa aproximadamente el 1.5% de la CPU?

captura de pantalla superior http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

ACTUALIZACIÓN : Un comentarista a continuación solicitó que presione la tecla '1' y publique los resultados: la tecla 1 http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

Ted de teflón
fuente

Respuestas:

11

El 57.6% significa que mysqld está usando .576 de una CPU. Es probable que la discrepancia sea una condición de carrera entre la recopilación de datos para el sistema en su conjunto y la recopilación de datos por proceso.

EDITAR: según su actualización, parece que tiene 16 núcleos.

57.5% => .575/16 = .036 = 3.6%.

De ahí proviene su 3%.

Si suma todos los porcentajes de inactividad y resta del 1600%, eso también resulta en aproximadamente 57.5%.

brian-brasil
fuente
3

¿Puedes intentar presionar el número 1 cuando la parte superior se está ejecutando y ver qué sucede?

Editar:

El Sr. Desconocido lo dice bien.

top dice "Si tuviera un núcleo de CPU, estaría ocupado en un 57.5%".

Pero tienes 16 núcleos. Entonces, este número 57 se extiende por todo el lugar, con mysqld siendo multiproceso y todo ...

Un poco confuso. Pero creo que esto se debe a que a top le resultaría más difícil mostrar información para cada núcleo ... ¡imagine una línea de información superior con 16 o más núcleos!

Además, si suma todo el tiempo de CPU "% us"

1.7+1.0+2.3+1.0+7.4+11.1+15.1+8.7 = 48.3
48.3/16 = 3.01875

De aquí proviene el número del 3% ...

Ahora no
fuente
hecho; Ver pregunta actualizada.
Teflon Ted
1

¿Alguien ha recomendado htop? No es que ayude con esta pregunta en particular más de lo que ya lo han hecho las respuestas anteriores, ¡pero me siento obligado a mencionar htopcada vez que veo que alguien sigue usando top!

usuario14018
fuente
0

No puedo decir si su parte superior está fusionando varias CPU que tiene, pero eso todavía no tendría mucho sentido.

Lo que podría estar sucediendo es que top no obtiene los valores para cada proceso y el uso total de la CPU al mismo tiempo. Hay un pequeño período de tiempo en el que mysql puede haberse detenido o comenzar a usar una gran cantidad de CPU entre el momento en que se lee la información del proceso y se lee el global. Bien podría ser una simple condición de carrera.

Por supuesto, esto habría tenido que haber pasado el tiempo suficiente para que te hayas dado cuenta, así que supongo que esto podría ser un error extraño en algún lugar de la parte superior o la contabilidad del núcleo.

David Pashley
fuente
0

nosotros: espacio de usuario - lo que está ejecutando por encima del núcleo sy: llamadas del sistema - lo que se está ejecutando dentro del núcleo si: interrupciones de software: cuánto tiempo se dedica a las interrupciones creadas por software (llamadas al sistema, etc.)

Ric
fuente