En los sistemas linux, el uso de memoria RAM como cache, es gestionado por el kernel de manera automatica, sin necesidad de configurar o ejecutar los programas de manera distinta a la usual.
Veamos el siguiente ejemplo, en el cual, se tiene un archivo de 25.85M aproximadamente.
$ ls -l archivo.bin
-rwxr-xr-x. 1 cmartine cmartine 27109840 Jul 1 10:52 archivo.bin
Utilizando el comando time, para determinar el tiempo de ejecucion y el comando cat para realizar la lectura del archivo, obtenemos lo siguiente en la primer ejecucion. Nota: se envia la salida al dispositivo /dev/null, para descartarla.
$ time cat archivo.bin > /dev/null
real 0m0.466s
user 0m0.002s
sys 0m0.123s
El tiempo que se tardo en ejecutar fue de 0.466 segundo. Posteriormente, ejecutando el mismo comando inmediatamente 3 veces seguidas, se obtiene el siguiente resultado:
$ time cat archivo.bin > /dev/null
real 0m0.040s
user 0m0.002s
sys 0m0.037s
$ time cat archivo.bin > /dev/null
real 0m0.026s
user 0m0.001s
sys 0m0.025s
$ time cat archivo.bin > /dev/null
real 0m0.029s
user 0m0.000s
sys 0m0.025s
Como se puede observar, el tiempo real, disminuyo drasticamente a menos de la decima parte del tiempo original. Esto es debido a que el kernel de linux maneja de manera automatica la memoria RAM que no se emplea en crear un cache de los archivos utilizados, sin necesidad de realizar configuracion alguna. La cantidad de memoria que esta siendoutilizada en este cache, se puede consultar utilizando el comando top.
¿Por que linux hace esto? Sencillamente por que si no se emplea la memoria, estaria desocupada (desperdiciandose cuando el sistema no la esta utilizando para realizar algun trabajo). Es importante aclara, que cuando se ejecuta un programa, el cual requiere utilizar mucha memoria, se libera parte de la memoria utilizada para el cache y se asigna al programa, pudiendo llegar a la situacion en que el cache ya no tenga memoria asignada, por que un programa requiere utilizar toda la memoria del sistema
No hay comentarios.:
Publicar un comentario