squid: cache_mem & cache_dir

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

squid: cache_mem & cache_dir

José Betancourt Mondeja
Se que el primero se guarda en la RAM (cache_mem 256 MB) y el segundo
en el HDD (cache_dir aufs /var/spool/squid 100 16 256).

Pero porque dos caché ? Se guardan objetos diferentes en cada una ? No
entiendo el objetivo de tener 2. Se que por defecto Squid no guarda en
el disco y si en memoria.

El fichero de configuración original lo dice:

# cache_mem:
#Default:
# cache_mem 256 MB

# cache_dir
#Default:
# No disk cache. Store cache ojects only in memory.

Reply | Threaded
Open this post in threaded view
|

RE: squid: cache_mem & cache_dir

ziprasidone146939277 ziprasidone146939277
Habría que leer bien la documentación.

Entiendo lo siguiente:

> Pero porque dos caché ?

En primer lugar no tienes tanto espacio libre en la memoria como sí en el HDD.

> Se guardan objetos diferentes en cada una?

La respuesta es "sí y no".

Si: porque a la RAM van objetos más pequeños (por lo general) y más solicitados por los usuarios que vayan a usar el proxy.
Y no: porque en sí, el tipo de los objetos son los mismos. Hilando fino en este punto, creo que sí merece leer la documentación, ya que no estoy del todo seguro de si son o no exactamente los mismos.
Objetos: datos/bytes/etc "cacheables" por squid de cualquier índole.

> No entiendo el objetivo de tener 2.

Mas o menos ya está contestado arriba.

No obstante, se podría hacer una analogía con un S.O. entre la cache Level "n" de la CPU, la memoria RAM y el HDD de un hardware cualquiera.
- La CPU (squid) accede de forma instantánea (o casi) a su propia cache L1/L2/etc. (eso sería cache_mem)
- Un poco bastante más lento (aunque todavía rápido) a la memoria RAM (eso sería cache_dir);
- ... y lo que squid tenga que ir a buscar a Internet (ausente en cualquiera de "las cache") en esta analogía, sería la información en disco (lo más lento).

> Se que por defecto Squid no guarda en el disco y si en memoria.

Puede ser, pero eso sería lo ideal.
Imagínate un objeto (por ejemplo el instalador del programa X) de 250 MB que quisieras tenerlo "siempre" listo en cache para una segunda solicitud y entrega a velocidad LAN (de paso ahorro de Internet); almacenarlo en la RAM sería muy costoso, por no decir inviable.

Por último y me parece el punto más importante: no olvides que la RAM es volátil, su información solo dura hasta que reinicies el equipo.

Más o menos un panorama, que desde ya puede estar errado.

Ojala te sirva