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
16. June 2011 at 12:42 pm :
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…
16. June 2011 at 2:27 pm :
Ya se lo que ocurre, esto es dividido por CPU, osea que tu time idle ha de ser dividido por tu numero de CPUs..
16. June 2011 at 2:35 pm :
el comando mejorado….