# [Caché] Limitar caché en memoria (cerrado-resuelto a medias)

## thesen

Hola!

Llevo un tiempo utilizando KDE-3.4.X y algo que me ha sorprendido es el consumo de memoria. Además de lo ya comentado mucho de que es un WM pesado (no me parece tan pesado con todo lo que ofrece) tengo un sumidero de memoria. Recién abierto tengo unos 200Mb de memoria ocupados, abro unos cuantos programas pesados como amule, amarok, firefox y algo mas por ahi, y llego a los 500Mb con facilidad, pero si cierro todo otra vez y lo dejo como recien arrancado como mucho libera 50Mb, es decir, despues de utilizar programas paso de tener 200Mb ocupados a tener 450Mb.

Hasta aquí nada demasiado raro. Supuse que era porque no se liberaba correctamente memoria y aunque me parecía muy chapucero que de 300Mb se liberen 50Mb, podía pasar. Si volvía a abrir todo otra vez no se acumulaba, es decir volvía a estar entorno a los 500Mb, no reservaba nueva memoria, con lo que se podía sobrevivir. 

Para no estar tan justo de memoria (tenia 512Mb) y no utilizar tanto swap, me compré un modulo de 1Gb. Mi sorpresa ahora es que abriendo lo mismo que abria antes, ahora me ocupa en memoria >990Mb y sigo utilizando swap. Por ahí leí que se debía a buffers y cache, pero ninguna respuesta mas concreta sobre como solucionar el problema. ¿A alguien le pasa lo mismo?

Especificaciones:

    CPU: AMD Athlon XP 2600+

    Mem: DDR400 1Gb

    HD: SATA Maxtor 200Gb

    Graf: Ati Radeon 9600XT

    SO: Gentoo (obviamente) 

    Kernel: 2.6.12-gentoo-r9

    KDE: 3.4.2 sin transparencias, todo muy simple

Si falta algun dato que pueda ser importante solo preguntad. Como dato adicional, decir que mi /tmp esta montado en memoria con un limite de 100Mb.

Un saludo y gracias por adelantado.

----------

## thesen

Hola!

Acabo de encontrar en los foros algo que me puede ser útil para encauzar mi búsqueda. Antes había buscado con el Quick Search la palabra memoria y sólo me dió post en inglés que no tenían mucho que ver con lo que buscaba. Con la búsqueda avanzada y seleccionando sólo foros en español he encontrado eso.

Seguramente sea el caché ya que tanto el amule como el amarok utilizan varios archivos y mirando el resultado de top me dice que tiene cacheados unos 400M y free -m tambien me dice lo mismo. ¿Hay alguna manera de limitar el caché en memoria? Buscando por ahí encontré ulimit, pero no se exactamente como utilizarlo y la página del manual no es de mucha utilidad porque no explica las opciones. ¿Alguien sabe utilizarlo? ¿Me servirá? El problema no es que me ocupe memoria, tengo 1Gb y no hago calculos que necesiten mucha memoria, pero ocupa tanto que he llegado a tener 200Mb en swap. El objetivo de comprar memoria era mejorar, no quedarme igual pero con más memoria.

Un saludo!

----------

## DDrDark

Puedes mirarte la guia de "acelerar/optimizar el arranque y sistema linux gentoo", https://forums.gentoo.org/viewtopic-t-197983.html

Te pego el trozo que nos interesa:

 *Quote:*   

> 6. Gestionando la memoria swap
> 
> En este apartado solo quería indicar un par de cosillas que nos pueden ayudar.
> 
> En primer lugar, si se dispone de dos discos es mucho mejor poner la partición de swap en el segundo disco (teniendo la partición raíz en el primero) ya que mejorará enormemente los tiempos de lectura y escritura.
> ...

 

salu2 aver site sirve

----------

## thesen

Gracias por la respuesta! Acabo de bajar el swappiness a 10 a ver si mejora la cosa. La primera vez que instale Gentoo recuerdo que cambie el swappiness, pero ahora ni me acordaba!

Aún con lo de swappiness (ya os contare como va) me gustaria saber si puedo cambiar los valores de cache en memoria para que cargue menos en memoria. Asi en vez de tener que vaciar memoria cada vez que quiera reservar nueva podria directamente reservar. Una opcion seria asegurar un minimo de memoria libre en vez de limitar el tamaño del cache. Supongo que esto ya correspondera al nucleo mas que a alguna aplicacion.

Un saludo y gracias!

----------

## DDrDark

Yo lo tenia a 0 si no siempre me usaba swap, ahora tengo el kernel ck (ck-sources) y eso lo hace automaticamente  :Very Happy: 

----------

## thesen

Para tener el swappiness a cero no seria mejor desactivar la swap? Investigare sobre los parches ck, a ver si me convence.

Un saludo!

----------

## psm1984

¿y para que sirve la memoria libre?  :Wink:  Mejor usarla para cache ¿no?, si cuando haga falta, esa cache se va a reducir, no es un bug es una feature  :Laughing: .

----------

## thesen

No hablo de desactivar el cache, de hecho eso: es una feature!!. El problema es que mas de una vez he tenido que tirar de swap porque tenia 500Mb de cache. Lo unico para lo que serviria la memoria libre es para acelerar el arranque de las aplicaciones, al no tener que reordenadar y liberar la memoria. 

Creo que al final lo que hare sera eliminar la swap para forzar al sistema a liberar memoria siempre, aunque eso lleva a arriesgarse a quedarse sin memoria, pero lo veo dificil con 1,5Gb y un uso muy light (no tengo un server de bases de datos  :Wink:  ).

Un saludo!

----------

## Yoshi Assim

Hola:

Yo también uso ck-dources y del swappiness se encarga automáticamente... Pero encontré una opción que quiza te sirva para el swap. Añade en tu fichero /etc/syctl.conf:

```
vm.laptop_mode=1
```

Con esta opción "activada" se reduce mucho el swap a disco  :Very Happy: 

----------

## thesen

Al final he desactivado la swap. De momento me va bien y no creo que me de problemas.

 *Quote:*   

> 
> 
> ```
> vm.laptop_mode=1
> ```
> ...

 

Esto sirve para cuando tienes un portatil. Obviamente funciona en cualquier otro tipo de ordenador, pero esta orientado a portatiles que tengan las herramientas laptop-mode. En mi portatil lo tengo puesto asi para que no me gaste mucha bateria.

Un saludo y gracias!!

----------

## Yoshi Assim

Hola...

Quizás se me olvidó decirlo pero mi ordenador en un Notebook ThinkPad de IBM...  :Very Happy: 

----------

## thesen

Ahora lo entiendo...  :Very Happy: 

Estoy con las ck-sources y de momento mas o menos bien. Echo en falta el gensplash y cuando pongo los parches de spock me fallan 2 de los 8, pero bueno, seguire un tiempo a ver si me convence el rendimiento.

Un saludo!

----------

## Yoshi Assim

Hola:

Yo lo uso en un Servidor (de producción) multiprocesador y en 2 máquinas de sobremesa (estaciones) y en mi portàtil y estoy muy satisfecho con su estabilidad y rendimiento (nunca he tenido un kernel panic, cuelgue o algo por el estilo, que yo recuerde) y siempres uso el último...

----------

## Soul Lost

http://www.google.com/search?q=cache:HoxPr7ahYhwJ:blogs.eurielec.etsit.upm.es/freedreams/posts/2004/08/13/linux-desktop/+vm.vfs_cache_pressure+%3D&hl=es&lr=&strip=1

El servidor de esa pagía esta down  :Shocked:  :Confused: 

----------

## Yoshi Assim

Hola:

Gracias por tu post... es muy interesante... He podido consultar el artículo que está en el caché de Google... pero me ha quedado una duda...

Yo tengo un portátil Pentium III con 384 MB de RAM y creo que va de P*** M***e... creo que lo tengo super optimizado todo... pero tan sólo 384 MB de RAM hay que ir con un poco de cuidado...

Si no lo he entendido mal modificando el valor por defecto (100) de vm.vfs_cache_pressure y cambiándolo por ejemplo por 300 podría mejorar su rendimiento... Pero... ¿no es más interesante que el Sistema use la RAM para cachear los accesos a disco y vaya liberando la memoria RAM a medida que sea necesitada por las aplicaciones que limitar esta función?

No sé... ¿qué opinaís al respecto?...

----------

