Averiguar que procesos estan "usando" CPU en estado "wa"
Daniel Serpell
daniel_serpell en yahoo.com
Mie Abr 20 10:57:09 CLT 2005
Hola!
El Mon, Apr 18, 2005 at 05:06:57PM -0400, Leonardo Soto M escribio:
> De vez en cuando veo en top un porcentaje alto en "wa" (waiting? algo
> que ver con I/O?). El punto es que mi maquina es particularmente
> inusable en esos momentos. Pero top no parece mostrar al(los)
> culpable(s), sino mas bien solo el % de "user" de cada proceso. A veces
> intuyo quien es el responsable y un par de kills me devuelven mi
> maquina, pero otras veces no tengo la menor idea de que pasa y jugar a
> la ruleta rusa no es tan entrete.
El problema es que normalmente hay muchos procesos que está "esperando
por I/O", no existe una relación puntual con un proceso específico.
Por ejemplo, tienes un proceso que está leyendo un archivo X, de varios
cientos de megas. Ese proceso está causando mucho I/O, pero no satura
el sistema.
Luego, otro proceso comienza a hacer lo mismo, pero con otro gran
archivo. Ahora el núcleo debe leer pedazos de un archivo y luego
de otro, lo que genera muchas búsquedas en el disco, lo que es
lento (el tiempo de "seek" en el disco es dominante).
En este momento, todo se pone muy lento, y por lo tanto el sistema
pasa un gran porcentaje de tiempo en "espera por I/O".
¿qué proceso tiene la culpa? Ninguno en realidad, es la combinación
de procesos lo que produce la saturación.
Como los discos duros actuales son muy rápidos para la lectura
secuencial pero lentos para la búsqueda, un simple "find /" puede
lograr que el sistema se sienta muy lento, pese a que la cantidad
de I/O que genera es ínfimo.
Creo que es más fácil que tu mismo identifiques el proceso correcto que
genera el probelma.
Daniel.
Más información sobre la lista de distribución Linux