9.7. Memory storage

Abbiamo detto anche in precedenza che Squid utilizza un'elevata quantità di memoria RAM per garantire le massime prestazioni. In Squid 2.5, per ogni oggetto presente su disco viene mantenuta in memoria una StoreEntry di 72 byte (104 byte nei sistemi a 64 bit). Un apposita area di memoria definita con il TAG cache_mem di squid.conf viene riservata per contenere i seguenti tipi di oggetto

Gli oggetti di tipo In-Transit hanno sempre priorità sugli altri. Quando è necessario dello spazio addizionale per i dati in arrivo, gli oggetti di tipo Negative-Cached e Hot vengono rilasciati. Possiamo anche dire che gli oggetti di tipo Negative-Cached e Hot possono occupare solamente lo spazio inutilizzato che quindi non è necessario agli oggetti del tipo In-Transit.

9.7.1. Parametri di configurazione

La configurazione del Memory Storage é controllabile tramite alcuni parametri di configurazione inclusi nel file squid.conf

cache_mem bytes 
high_memory_warning bytes
maximum_object_size bytes
minimum_object_size bytes
maximum_object_size_in_memory bytes
   

il TAG cache_mem

specifica la quantità massima di memoria utilizzabile da Squid per contenere gli oggetti di tipo In-Transit, Hot e Negative-Cached, l'allocazione di memoria avviene a blocchi di 4 KByte. In caso di necessità, il limite specificato può essere momentaneamente superato, il valore predefinito é 8 MByte, ad esempio

cache_mem 64 MB
   

il TAG cache_mem non determina l'occupazione massima di memoria che viene effettuata da Squid. Squid infatti utilizza altra memoria per eseguire le altre operazioni e diversi I/O buffer (scrittura dei file su disco o una richiesta HTTP), per eventuali ed ulteriori dettagli riferisi alla relativa sezione nelle FAQ di Squid.

il TAG high_memory_warning

viene utilizzato per tenere sotto controllo l'utilizzo della memoria

high_memory_warning 80 MB
   

se l'utilizzo della memoria supera i valori da noi impostati, Squid registra un WARNING nel file cache.log anche se il debug level è impostato a 0.

il TAG maximum_object_size

specifica la dimensione massima degli oggetti memorizzabili nel Disk Storage, un valore elevato per questo parametro fornisce un alto rapporto di BYTE hits, i valori bassi forniscono una maggiore responsivitá della webcache a discapito di un maggiore consumo di banda Internet. Il valore predefinito é 4096 KByte, ad esempio

maximum_object_size 8192 Kb
   

il TAG mimum_object_size

specifica la dimensione minima degli oggetti memorizzabili nel Disk Storage, il valore predefinito é 0 KByte, ad esempio

mimum_object_size 1 Kb
   

il TAG maximum_object_size_in_memory

specifica la dimensione massima degli oggetti conservabili nel Memory Storage. È raccomandabile impostare questo parametro con un valore che consenta la memorizzazione degli oggetti con un elevato hit rate, senza però sovraccaricare il Memory Storage con oggetti di dimensioni elevate. Il valore predefinito é 8 KByte, ad esempio

maximum_object_size_in_memory 64 Kb