problema con los valores de drop_caches (Solucionado)

he generado un pequeño script para limpiar la memoria cache y swap cuando el ordenador se pone lento. Pienso que es útil para la gente que usa equipos modestos como el mio. (1Gb de ram y 900Mghz)

es el siguiente:

echo “Limpiando la caché y swap“;
echo “el script se tiene que ejecutar como ROOT”;
sync ; echo 1 > /proc/sys/vm/drop_caches
sync ; echo 2 > /proc/sys/vm/drop_caches
sync ; echo 3 > /proc/sys/vm/drop_caches
swapoff -a && swapon -a

cuando termina el proceso miro el valor de drop_caches
cat /proc/sys/vm/drop_caches
y me da 3

elproblema es que no me deja volver a ponerlo al valor por defecto que es 0. Si lo intento me da este error:

echo 0 > /proc/sys/vm/drop_caches
bash: echo: error de escritura: Argumento inválido

entiendo que es importante volver este valor a cero ya que entiendo que esto hace que sea el kernel quien gestione la memoria.

como puedo ponerlo de nuevo en el valor 0?

Imagen de rioport
+1
+2
-1

No es importante volver a poner a cero ese valor. El kernel sigue gestionando la memoria y mientras no vuelvas a ejecutar el comandoecho 3 > /proc/sys/vm/drop_caches ; sync la memoria en buffer y cache volverá a utilizarse. Puedes usar el programa htop o top para ver que al cambiar alguno de los valores de drop_caches se reduce el uso de la memoria en buffers y cache, también para comprobar que la memoria vuelve a usarse; los valores de uso de memoria en bufers y cache vuelven a aumentar.

No es necesario ejecutar los tres comandos pues según la documentación del kernel dice esto:

drop_caches

Writing to this will cause the kernel to drop clean caches, dentries and
inodes from memory, causing that memory to become free.

To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches

As this is a non-destructive operation and dirty objects are not freeable, the
user should run `sync' first.

Como vez el ajustar el valor de drop_caches a 3 hace que incluya a los don anteriores. Y la razón de que te de error es porque sólo acepta alguno de los tres valores mencionados ahí arriba.

+1
+2
-1

-- GC --

Imagen de jccall80
+1
0
-1

Muchas gracias por tu buena explicación.

+1
0
-1
Imagen de jccall80
+1
0
-1

Que tipo de RAM estamos liberando con los comandos que se mencionan al principio?

Entiendo que estamos vaciando el cache de la memoria RAM (SRAM).

En el caso que fuera la cache de la CPU o disco duro decidmelo. No quiero vivir engañada.

Seria posible vaciar la cache de la CPU o del disco duro?

+1
0
-1
Imagen de Jose Luis 1320
+1
+1
-1

¿quien te esta engañando?.

para darnos una idea aqui hay información al respecto: http://www.win.tue.nl/~aeb/linux/lk/lk-8.html

En que consisten los inodos, los dentries, los superbloques y los archivos.

+1
+1
-1

"Yo sólo se que no se nada"
-Sócrates, filósofo griego.
-Normas del foro

Imagen de jccall80
+1
0
-1

No me engaña nadie. Simplemente vivir engañada me refería a pensar una cosa que realmente no es. Gracias por responder. Estudio el Link que me has pasado.

+1
0
-1
Imagen de rioport
+1
+1
-1

Es la cache de la RAM la que se vacía y realmente (al menos en teoría) no supone una mejora en el rendimiento, ya que si el equipo necesitara más RAM el kernel automáticamente iría vaciando lo que está ocupado por el buffer y cache sin necesidad de que intervengas, y en el caso de llenarse la RAM empezaría a usar la partición swap, aquí es donde se pone lento el equipo. De hecho, mientras no sea necesario el uso completo de la RAM, la memoria ocupada en buffer y cache ayudan a que los programas se ejecuten más rápido y lo puedes notar al abrir ciertos programas pesados (en cuanto a uso de RAM) como Firefox, LibreOffice, etc: la primera vez se ejecutan algo lento pero en las siguientes su inicio es más rápido. Claro que depende del equipo que tengas para notar o no esas ventajas.

¿Vaciar la cache del procesador, del disco duro? no sé si sea posible, pero de lo que estoy seguro es que no ganarás nada en rendimiento haciendo eso.

+1
+1
-1

-- GC --