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
In-Transit objects
Hot objects
Negative-Cached objects
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.
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 |