PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Squid-Proxy: Welche Cache Strategie?


RaumKraehe
2009-03-11, 11:37:38
Ich habe folgenden Anwendungsfall: Squid soll helfen Datentransfer zu sparen. Das ist ja auch erstmal der sinn eines Proxys.

Aber wie sieht es aus wenn ich vornehmlich größere Daten cachen will? Im diesem Beispiel geht es um Videodateien die schon mal 200MB oder mehr groß sein können. Squid soll diese Daten bei Bedarf zwischenspeichern und dann vor Ort diese Daten lokal weiterverteilen.

Nun frage ich mich welche Cache-Strategie dafür am besten geeignet ist. Ich bentuze Squid2.7 auf Debian Linux.

Als Auswahl haben ich:

lru : Squid's original list based LRU policy
heap GDSF : Greedy-Dual Size Frequency
heap LFUDA: Least Frequently Used with Dynamic Aging
heap LRU : LRU policy implemented using a heap

Momentan läuft er mit "lru". Das funktioniert mit den üblichen Webdaten auch ziemlich gut aber irgend wie werden große Daten da nicht unbedingt mit gecached. Ich dachte das "heap LFUDA" wohl das besser wäre.

Tja, hat jemand hier Erfahrungen mit SQUID? Ist meine Vermutung richtig?

thx

The_Invisible
2009-03-11, 12:45:42
du weißt schon das du die maximale objektgröße die gecacht werden soll einstellbar ist?

zb http://www.squid-cache.org/Doc/config/maximum_object_size/

mfg

RaumKraehe
2009-03-11, 14:24:53
Ja das weiß ich und damit habe ich auch schon herumgespielt doch habe ich das Gefühl das es nicht das gewünschte Ergebniss liefert.

Deshlab die Vermutung das ich vieleicht die falsche Strategie verwende.

Hardwaretoaster
2009-03-11, 16:24:08
Wenn gewisse Dateien gar nicht gecachet werden, würde ich den Fehler auch eher wo anders suchen.
Aber zurück zu den Cache-Strategien:
LRU schemißt immer das raus, was am längsten nicht genutzt wurde, das ist natürlich dann problematisch, wenn viele verschiedene Sachen genutzt werden, dann kann dir passieren, das dein Ziel schon hinten wieder rausfällt, bevor es vorne nochmal gebraucht wird.
Greedy kenn ich jetzt nur im DB-Kontext für Declustering und Disk-Fram, der wird wohl auch noch was anderes gemacht haben...egal erstmal.
LFU zählt die Anzahl der Referenzen auf ein Objekt, nachteil in der Standardimplementierung: Ein einmal oft referenziertes Objekt bekommst du kaum noch verdrängt, desshalb mit Aging (damit wird in gewissen Zeitabständen was abgezogen, durch was geteilt..je nach Implemetierung.

Wenn die zu cachenden Dateien öfter genutzt werden als "der Rest", könnte dir LFU helfen. ansonsten meine Vermutung, dass bei proxies LRU schon eine ganz brauchbare Strategie ist.
Ich würde mal schauen (ohne mich dezidiert mit squid auszukennen): Cache an sich groß genug? Teh_Invisibles Aspket. Hast du vielleicht gewisse Sachen vom Caching ausgeschlossen (kann ja sein, das gewisse Sachen per Standard von squid nicht gechached werden, kA)

RaumKraehe
2009-03-11, 16:31:08
Danke erstmal für die Erklärung. Der Cache ist ca. 100 GB groß und Objekte mit einer max. größe von 500 MB dürfen gecached werden. (Sind nur Testsettings)

Naja, ab Montag kommt er in die richtige Testumgebung wo auch wirklich nur noch große Dateien durch die Gegend geschoben werden. Mal kucken wie es sich dann verhält.