Alta carga de CPU pero procesos superiores en la parte superior alrededor de 0%

11

Tenemos un servidor con una alta carga inusual y una utilidad de CPU, pero no podemos entender por qué. Cuando corremos arriba, todos los procs parecen tener una CPU muy baja.

http://cl.ly/2d1g0K3q261r0R0K3e35

¿Hay una mejor manera de buscar lo que está causando esto?

Ben
fuente
Debo señalar que estoy en Ubuntu 10.04
Ben

Respuestas:

4

Creo que este error es tu caso. Por lo que veo en la salida, tiene suficiente memoria (tenga en cuenta los aproximadamente 14 GB en caché), no hay problemas de E / S, pero tiene procesos relacionados con xen en ejecución. Esto me hace pensar que es un error.

grs
fuente
Resultó ser un error en Ubuntu 10.04 y el hardware que AWS estaba usando
Ben
7

La carga es una medida de la carga de trabajo que un sistema ha tenido en una base de 1, 5 y 15 minutos.

La idea errónea más común es que Load Average está puramente conectado al uso de la CPU de un sistema.
Sin embargo, la carga incorpora medidas adicionales, como CPU esperando E / S, que creo que es su problema.

Según la imagen, supongo que se quedó sin memoria y comenzó a intercambiar datos en el disco.

Un simple free -mle dirá cuánta RAM e intercambio se usa.
La columna interesante es la columna libre además -/+ buffers/cache.
Si está cerca de cero, se ha quedado sin RAM y debe actuar en consecuencia.

marca
fuente
1
+1 por intercambio. Puede usar iotopo vmstatpara intentar ver si es E / S.
Axel Knauf
1
- / + buffers / cache: 2933 14586
Ben
4

Noté que el promedio de carga es bastante alto (68, wow). ¿Es posible que haya muchos procesos que ocupan un poco de CPU y, por lo tanto, suman todo el tiempo de CPU? Tal vez, esos procesos solo comienzan y finalizan muy rápidamente, por lo que top no puede capturar la existencia de ellos, puede intentar ver si en la parte superior puede ver eso o no.

Raymond Tau
fuente
3

Tratar

iotop

IO fue para mí la mayor parte del tiempo.

MarcoHager
fuente
2

Intenta usar:

top -o cpu

La -obandera forzará la parte superior para ordenar los procesos por uso de CPU en orden descendente.

Bandido
fuente
cuando corrí top -o cpuobtuve "top: argumento desconocido 'o'"
Ben
Ok, intenta correr arriba y golpear omientras se está ejecutando. Debería pedirte una clave principal. Escriba cpuy presione enter.
Bandido
1
incluso cuando se ordena por CPU no hay nada en la parte superior de la lista por encima del 1% y solo hay un puñado (2-3) en un momento dado. El resto son 0%
Ben
Al menos en Centos 7.2, el comando correcto para hacer esto estop -o %CPU
siliconrockstar el
2

Podrían ser archivos bloqueados en nfs o cualquier otra cosa que bloquee un archivo al que otro proceso necesita acceso

También podría perderse el servicio configurado con demasiados hilos activos

John
fuente
0

Parece que el uso de la CPU proviene de un hilo. topParece no tener esto en cuenta. Hace poco vi esto en un servidor mysql. hay instrucciones INSERT en ejecución pero no pude obtener las nuevas filas con SELECT porque algún hilo de mysqld estaba actualizando el índice de la tabla. la parte superior muestra una carga del 100% del usuario en un núcleo, pero cada proceso, incluido mysqld, era una CPU del 0.0%. horas después, el mismo SELECT proporcionó el conjunto de resultados esperado.

Ver también

Obtener estadísticas de una CPU por hilo

proceso 'htop' y uso de CPU de subprocesos?

StefanKaerst
fuente