Vous êtes sur la page 1sur 2

UnixLibre

Hermosillo, Sonora.- (09 de febrero del 2008) Una de las herramientas mas tiles para un administrador de sistemas Unix/Linux es "top". La informacin proporcionada por este programa es muy diversa, y una muy importante es la carga promedio (average load).

Los tres valores al principio de la informacin arrojada por top son la carga promedio del CPU durante un minuto, cinco minutos y quince minutos. No debemos confundir este valor con el porcentaje de uso de CPU. Lo que se mide es exactamente el uso del procesador, no se contabilizan aquellas tareas que estn realizando I/O o cualquier otra actividad en donde el procesador no est involucrado. El valor de la carga promedio tambin se puede obtener de otros programas, como uptime:

$ uptime 12:24AM up 50 days, 5:09, 1 user, load averages: 3.05, 0.10, 0.09

La carga promedio del CPU nos indica si el procesador est sobre o sub-utilizado. A muy grandes razgos, un CPU que no est siendo utilizado tiene una carga promedio de 0, y un proceso que est ocupando el CPU (estado running) o que est listo para ejecutarse (y por ende en espera del CPU: estado runnable) le agrega el valor de 1.0 a este nmero. Del ejemplo anterior podemos obtener que el CPU estuvo sobreutilizado en un 205%: Un proceso ocupando el CPU y 2.05 procesos en estado runnable. La parte fraccional se obtiene debido a que el valor de la carga promedio se calcula con una funcin de promedios mviles con ponderacin exponencial.

En teora el valor ideal para la carga promedio es de 1.0, lo que significara que el CPU est al 100% de su utilizacin y no hay procesos esperando a ser ejecutados. Volviendo al ejemplo anterior, para que la carga promedio est en su valor ptimo necesitaramos un CPU 3.05 veces mas potente, o bien un sistema con 4 CPUs. En sistemas multiprocesador (o multicore), la carga promedio debe dividirse entre el nmero de procesadores para obtener el valor equivalente a un equipo con un solo CPU. Una carga promedio de 4.0 en un sistema Quad-Core indicara un estado ideal.

El valor ideal para un sistema determinado depender del uso real del mismo. Como regla general, podemos observar lo siguiente:

La carga promedio (por CPU en caso de sistemas mltiples) puede llegar a 2.0 o a 3.0 en perodos cortos durante el ltimo minuto sin que represente una sobre-utilizacin del CPU. Una carga promedio arriba de 2.0 o 3.0 (por CPU) durante los ltimos 15 minutos indican claramente que el (los) CPU(s) no es(son) suficiente(s) para la carga de trabajo.

Estos valores dependern tambin del sistema en cuestin. En el caso particular de Linux, en la carga promedio tambin se cuentan procesos en estado uninterruptible-sleep (estn dormidos pero no pueden pasarse a la cola de runnables porque estn esperando algn recurso, ejm. una lectura del disco duro). Estos procesos que no estn demandando CPU tambin afectan el valor de la carga promedio.

Top obtiene los valores de la carga promedio desde /proc/loadavg. Por lo tanto, el encargado de llevar este

conteo es el kernel. A un proceso en estado runnable se le asigna un procesador disponible, y se le es asignado un Quantum: unaa rebanada de tiempo equivalente a 1/100 de segundo (10 milisegundos). En la mayora de las ocasiones el proceso desocupar el CPU debido a requerimientos de I/O (disco, la red, etc), pero en el caso que el proceso monopolize al CPU se genera una interrupcin de hardware que permite desocupar al procesador, y adems el kernel le agrega una penalizacin al proceso. Para darnos una idea, si un proceso acapara un CPU Intel de 2.6Ghz (los Ghz de los CPUs AMD se miden diferente), tiene oportunidad de ejecutar aproximadamente 50 millones de instrucciones, cantidad que es mas que suficiente para un ciclo de una aplicacin comn y corriente. Cuando el kernel toma el control despes de este Quantum, deshabilita todas las interrupciones e incrementa una variable (jiffies counter) que lleva el conteo del nmero de ocurrencias de ste Quantum, y es en este momento cuando se lleva a cabo el clculo de la carga promedio. En realidad, el valor de la carga promedio no se calcula en cada Quantum tick, depende de otros parmetros que determinan la frecuencia con que estos valores debern ser actualizados, y usualmente es cada 5 segundos.

Por otro lado, el porcentaje de uso de CPU es un valor tomado de una serie de lecturas tomadas peridicamente.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 476 popuser 15 0 35872 30m 2296 S 2 1.5 0:02.14 spamd 1633 root 10 -5 0 0 0 S 0 0.0 27:13.55 kjournald 18293 qmails 17 0 1692 516 404 S 0 0.0 2:51.08 qmail-send 20914 drweb 18 0 24312 16m 792 S 0 0.8 0:07.07 drwebd

En este ejemplo, si spamd registra el 2% de CPU significa que durante el muestreo de actividad se observ que ste proceso estuvo ocupando el procesador en el 2% del total de las muestras. En realidad no existe el concepto "2%" de uso de CPU, el procesador puede estar solamente en dos estados: Ocupado al 100% ejecutando una instruccin o al 0% esperando. Diversos autores comparan el porcentaje de uso con una autopista: El automvil con placas ABC-123 estuvo ocupando un carril de la autopista el 30% de los muestreos, y el automvil DEF-456 estuvo el 20% ocupando un carril de la autopista. Sin embargo, el porcentaje de uso del CPU no provee informacin acerca de la demanda de la autopista.

Vous aimerez peut-être aussi