systemadmin.es » Utilidades » uptime de un sistema y el idletime

uptime de un sistema y el idletime

Mediante el sistema de ficheros /proc de los sistemas Linux podemos obtener mucha información. Vamos a ver como obtener el “uptime” y el “idletime“.

Si hacemos un cat al fichero /proc/uptime veremos que nos da dos valores:

# cat /proc/uptime
24284036.86 2441006.79

El primero de ellos es el tiempo que lleva el sistema arrancado en segundos (el uptime) mientras que el segundo es el número de segundos que el sistema ha estado idle.

Por ejemplo, podemos calcular el número de dias mediante bc:

# echo "$(cat /proc/uptime | cut -f 1 -d' ' | cut -f1 -d.)/60/60/24" | bc -l
281.06802083333333333333

Evidentemente podemos sacar lo mismo mediante el comando uptime:

# uptime
 11:19:38 up 281 days,  2:48,  3 users,  load average: 0.27, 0.35, 0.34

En el caso del idletime podríamos hacer un comando similar usando el segundo valor. Esto nos daría el equivalente en dias que el sistema ha estado idle desde el arranque:

# echo "$(cat /proc/uptime | cut -f 2 -d' ' | cut -f1 -d.)/60/60/24" | bc -l
28.30368055555555555555

Combinando el idletime y el uptime podemos calcular en tanto por ciento el tiempo que el sistema ha estado idle. Unos ejemplos serían:

$ echo "($(cat /proc/uptime | cut -f 2 -d ' ')/$(cat /proc/uptime | cut -f 1 -d ' '))*100" | bc -l
96.79901640760216214000

Vemos este sistema con un 96% como esta la mayor parte del tiempo idle.

$ echo "($(cat /proc/uptime | cut -f 2 -d ' ')/$(cat /proc/uptime | cut -f 1 -d ' '))*100" | bc -l
41.64217400394716110500

En este caso vemos como esta mas o menos cargado con un 41%

$ echo "($(cat /proc/uptime | cut -f 2 -d ' ')/$(cat /proc/uptime | cut -f 1 -d ' '))*100" | bc -l
10.05021651474409662100

Mientras que en este caso con un 10% la mayor parte del tiempo usa la CPU. Se trata de un host de monitorización, de aquí su alta carga global.

Relacionados

Imprimir Imprimir

3 comments to “uptime de un sistema y el idletime”

  1. Pues mi sistema debe de ser raro porque..

    servidorisea:~# cat /proc/uptime
    2656981.67 3679774.51

    osea que tiene mas tiempo de idle que de uptime…

  2. Ya se lo que ocurre, esto es dividido por CPU, osea que tu time idle ha de ser dividido por tu numero de CPUs..

  3. el comando mejorado….

    echo "($(cat /proc/uptime | cut -f 2 -d ' ')/$(cat /proc/uptime | cut -f 1 -d ' '))/$(cat /proc/cpuinfo | grep proc | wc -l)*100" | bc -l
    

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>