2009-03-20 13 views

Respuesta

34

iotop y latencytop pueden ser útiles. Ninguno da exactamente el "tiempo de espera de la CPU causado por un proceso" - No estoy seguro de que tenga sentido, porque la CPU puede y funciona para otros procesos mientras espera IO - pero estas dos herramientas ofrecen una visión general (respectivamente) el tráfico de E/S del sistema y los retrasos en la programación.

+0

ambas herramientas se ven bien, pero el servidor en el que me encuentro no se puede reparar o actualizar fácilmente a> 2.6.20, por lo que no funcionan para mí. pero los conservaré para referencia futura :) –

+0

El enlace a LatencyTOP.org está muerto: no hay registros DNS raíz. El proyecto parece estar muerto, no se compromete desde 2009. –

54

Los procesos bloqueados en IO son los marcados como D en la columna de estado (S columna en la parte superior).

+0

Probablemente esta sea la respuesta aceptada aquí, ya que es más fácil de obtener como ayuda para encontrar el proceso culpable. –

35

Para ser más precisos, utilice este comando puede fácilmente averiguar qué procesos están "comiendo" sus ciclos de CPU:

while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done

Esta url podría ser útil: Linux Wait IO Problem

+1

D: suspensión ininterrumpida (generalmente IO) –

+4

reloj -n 1 "(ps aux | awk '\ $ 8 ~/D/{impresión \ $ 0}')" – abkrim

+1

@abkrim: ¡agradable! Me gusta la opción '-d' para mirar, haciendo su solución: mire -d -n 1 "(ps aux | awk '\ $ 8 ~/D/{print \ $ 0}')" – mormegil

2

Haz una tapa, luego cambie F, luego elija m o n, clasificará la lista de procesos por tiempo de CPU utilizado.

Cuestiones relacionadas