6.3 Cache-Optionen

Die folgenden Optionen steuern den Cache im Hauptspeicher, die interne Cache-Verwaltung und das Cache-Verhalten des Proxys.
Sie sind in der squid.conf mit folgender Überschrift versehen:

# OPTIONS WHICH AFFECT THE CACHE SIZE 
# ------------------
cache_mem
8 MB
Hiermit wird die Größe des von Squid reservierten Hauptspeichers für In-Transit Objects, Hot Objects und Negative-Cached Objects bestimmt.

Die Daten dieser Objekte werden in Blöcken zu 4 KB gespeichert. Daher sollte auch der Wert für cache_mem ein Vielfaches von 4 KB betragen.

In-Transit Objects (Durchgangsobjekte) haben die höchste Priorität. D.h. Hot Objects (ständig angefragte Objekte) und Negative-Cached Objects (nicht cachebare Objekte) füllen den Bereich, der nicht von In-Transit Objects benötigt wird (siehe auch maximum_object_size_in_memory).

Dies ist keine absolute Speichergrenze. Unter hoher Last kann Squid diesen Wert auch überschreiten.

ACHTUNG:
Diese Option bestimmt nicht den maximalen Speicherbedarf von Squid!
Es bestimmt allein den Speicher, den Squid zusätzlich für einen Cache im Hauptspeicher benutzt. Der tatsächliche Gesamtspeicherbedarf von Squid hängt von vielen weiteren Faktoren ab und kann erheblich höher liegen als der hier angegebene Wert.
cache_swap_low
90
cache_swap_high
95
Diese Optionen bestimmen die untere und obere Wassermarke in Prozent, für die Füllung des Cache. Wird die untere Marke (cache_swap_low) überschritten, beginnt Squid entsprechend der cache_replacement_policy Objekte aus dem Cache zu entfernen. Wird die obere Marke (cache_swap_high) erreicht, erfolgt die Räumung aggressiver.

Wenn die untere Marke unterschritten ist, wird der Prozess beendet.

Standard sind 90% und 95%. Die Differenz von 5% kann bei sehr großem Cache mehrere hundert MB ausmachen. In diesem Fall sollten Sie die Werte enger zusammenlegen.
maximum_object_size
4096 KB
Bestimmt die maximale Objektgröße im Cache. D.h. Objekte, die größer sind als hier angegeben, werden nicht im Cache abgelegt.

Ein Wert ohne Maßangabe wird in KB angenommen.

Ein relativ kleiner Wert führt zu höheren Objekt-Hitraten und damit i.d.R. zu etwas besserer Geschwindigkeit. Ein höherer Wert führt zu einer höheren Byte-Hitrate und reduziert die nötige Bandbreite.

Hinweis: Wenn als Ersetzungsverfahren (cache_replacement_policy) LFUDA angegeben wird, sollte dieser Wert höher gesetzt werden.
minimum_object_size
0 KB 6.7
Objekte, die kleiner als der hier angegebene Wert sind, werden nicht im Cache gespeichert. 0 KB bedeutet, dass Objekte aller Größen im Cache gehalten werden können. Werte ohne Größeneinheit werden in KB angenommen.
maximum_object_size_in_memory
8 KB 6.8
Diese Option entspricht in der Funktion der maximum_objekt_size, bezieht sich jedoch auf den Cache im Hauptspeicher (cache_mem). Objekte, die größer sind als hier angegeben, werden im Hauptspeicher gecached.
ipcache_size
1024
Hiermit wird die max. Anzahl der IP-Cache-Einträge bestimmt. Ein höherer Wert kann die Anzahl der von Squid veranlassten DNS-Anfragen reduzieren.
ipcache_low
90
ipcache_high
95
Diese Optionen bestimmen die untere und obere Wassermarke für die Füllung des IP-Cache in Prozent. Wird die untere Marke (ipcache_low) überschritten, beginnt Squid IP-Adressen aus dem Cache zu entfernen. Wird die obere Marke (ipcache_high) erreicht, erfolgt die Löschung aggressiver.

Wenn die untere Marke unterschritten ist, wird der Prozess beendet.

Standardwerte sind 90% und 95%.
fqdncache_size
1024
Bestimmt die max. Anzahl der FQDN (Full Qualified Domain Name) Cache-Einträge. Ein höherer Wert kann die Anzahl der von Squid veranlassten DNS-Anfragen reduzieren.
cache_replacement_policy
lru 6.9
Diese Option bestimmt, nach welchem Verfahren Objekte aus dem Cache entfernt werden, wenn Speicherplatz für neue Objekte benötigt wird.

Gültige Verfahren sind:

lru: least recently used (Squid-Originalverfahren)

heap GDSF: Greedy-Dual Size Frequency

heap LFUDA: Least Frequently Used with Dynamic Aging

heap LRU: erweitertes lru-Verfahren

LRU behält die zuletzt angefragten Objekte im Cache, unabhängig von Größe und Alter der Objekte.

heap GDSF optimiert die Objekt-Hitrate. Kleine, häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Wahrscheinlichkeit eines Objekt-Hit gesteigert.

heap LFUDA optimiert die Byte-Hitrate. Häufig angefragte Objekte werden im Cache gehalten, selten angefragte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefragtes, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten. Damit steigt die Byte-Hitrate auf Kosten der Objekt-Hitrate.

Das ausgewählte Verfahren wird auf jedes in cache_dir angegebene Cache-Verzeichnis angewendet.

Hinweis: Für das LFUDA-Verfahren sollte unbedingt die maximum_object_size (Standard: 4096 KB) erhöht werden, um die mögliche Byte-Hitrate zu maximieren.
memory_replacement_policy
lru 6.10
Diese Option bestimmt, nach welchem Verfahren Objekte aus dem Hauptspeicher entfernt werden, wenn Speicherplatz benötigt wird.

Gültige Verfahren sind: LRU, GDSF und LFUDA.

Die Beschreibung der Verfahren finden Sie unter cache_replacement_policy.


(c)2003 dpunkt.Verlag - mail(a)squid-handbuch.de