Konfiguration des Proxyservers Squid

Seite: 4/12
(8696 Worte insgesamt im Text)
(31836 mal aufgerufen)  Druckerfreundliche Ansicht

OPTIONS WHICH AFFECT THE CACHE SIZE

Hier lässt sich wohl am ehesten am Proxy-Server tunen. Immerhin handelt es sich hierbei um Einstellungen, welche die Speichernutzung - sowohl im RAM als auch auf der Festplatte - betreffen.

cache_mem

Gleich der erste Eintrag ist ein Volltreffer - normalerweise nutzt Squid nur 8 MB RAM. Man kann zwar von einer gewissen Kompensation reden, wenn man bedenkt, dass Linux von sich aus oft benötigte Dateien von der Festplatte im RAM cached aber mit einer höheren Einstellung lassen sich hier mehr Objekte direkt von Squid im Speicher halten, ohne dass zusätzliche Mechanismen benötigt werden.

Hier eine kleine Tabelle mit Werten, die sich in der Praxis bewährt haben:

RAM im System
RAM für Squid
bis 32 MB
8 MB
32 MB
16 MB
64 MB
24 MB
128 MB
96 MB
256 MB
96 MB

Darüber hinaus sollte man für Squid ungefähr ein Viertel des vorhandenen RAMs reservieren.

Bitte beachten Sie, dass Sie (laut Handbuch) immer ein Vielfaches von 4 MB verwenden sollten und der gesammte von Squid verwendete Speicherplatz durchaus höher sein kann! (Dies ist hier aber noch nie vorgekommen...)

Wenn Sie über ein System mit ausreichend RAM (>=128 MB) verfügen und auch die weiter unten eingestellten delay_pools vernünftig nutzen möchten, sollten Sie hier mindestens 32 MB vorsehen. Ich habe mich bei meinem Beispiel sogar für 128 MB entschieden:

cache_mem 128 MB

maximum_object_size

Dateien über die hier angegebene Grösse werden NICHT vom Proxy zwischengespeichert. Eine HTML-Datei erreicht selten die vorgegebene 4 MB Grenze - wenn Sie aber mit ihren Schülern einmal ein Video ansehen wollen oder als Administrator ein Updatepaket für mehrere Rechner aus dem Internet laden müssen, sollten Sie hier höhere Werte einstellen. (Unter Webmin lautet der passende Eintrag hier "Maximale Grösse zwischengespeicherter Objekte".)

maximum_object_size 65536 kB

maximum_object_size_in_memory

Das, was die Übersetzung schon sagt:
Dateien, welche grösser sind als hier angegeben werden NICHT im RAM gehalten. Standard sind 8 KB.

maximum_object_size_in_memory 4 KB

cache_replacement_policy

Wann sollen Dateien aus dem Cache entfernt werden? Seit der Version 2.5 von Squid stehen dafür mehrere Möglichkeiten zur Verfügung:

Standard So, wie bislang... Siehe auch lru
heap LFUDA (Heap least frequently used with dynamic aging) Häufig angefragte Objekte werden im Cache gehalten, selten angefragte werden freigegeben, unabhängig von deren Grösse. Damit wird ein häufiger angefragtes grosses Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten. Damit steigt die Trefferrate für grosse Objekte auf Kosten kleinerer. Die "Byte"-Trefferrate liegt hier also höher, da nur ein Treffer für eine grosse Datei schon viele Treffer für kleinere Dateien ausgleichen kann.
lru (Last Recently Used) Behält die zuletzt angefragten Objekte im Cache, unabhängig von Grösse und Alter der Objekte. Also werden grosse Objekte genauso behandelt, wie kleine. Wenn neue Objekte angefragt werden, werden ältere Dateien aus dem Cache gelöscht.
heap GDSF (Greedy-Dual-Size Frequency) Kleine, häufig angefragte Objekte werden auf Kosten grosser weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Warscheinlichkeit eines Treffers für kleinere Objekte gesteigert.
heap LRU (Heap Last frequently used) Erweitertes lru Verfahren. Hier wird zusätzlich noch das Alter der zwischengespeicherten Seiten berücksichtigt.

Jetzt stehen wir natürlich vor einem Dilemma: Lieber kurze Antwortzeiten (damit GDSF) oder weniger Traffic-Volumen (damit LFUDA)?

Wenn eine Schule ihren Internetanschluss nach Volumen abrechnet empfielt sich in jedem Fall die Verwendung von "heap least frequently used with dynamic aging LFUDA".

Unter Webmin lautet die entsprechende Einstellung "Dynamic least frequently used". Damit einher geht allerdings auch ein grösserer Wert bei der maximum_objekt_size!

Damit lohnt sich die Umstellung also nur, wenn gleichzeitig auch der Wert für cache_mem erhöht wird. So ab 32 MB RAM für Squid sollte sich die Umstellung bemerkbar machen - darunter fahren Sie mit den alten Werten auf jeden Fall besser.
cache_replacement_policy heap LFUDA
Eine andere Möglichkeit wäre noch ein goldener Mittelweg durch Kombination beider Verfahren: Squid kann den Cache-Bereich im Hauptspeicher und denjenigen auf der Festplatte unterschiedlich verwalten. Also kann man im RAM mit "GSDF" möglichst viele kleine Objekte zwischenspeichern und auf der Festplatte die "grossen Brocken" auslagern, indem man dort LFUDA nutzt. In diesem Fall sähe die Konfiguration so aus:
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF

Zur letzten Zeile erfahren Sie mehr im nächsten Abschnitt.

memory_replacement_policy

Genauso, wie die Dateien auf der Festplatte verwaltet werden, so funktioniert das auch im RAM. icon_wink

memory_replacement_policy heap LFUDA



Kommentare

Schultzi
13.09.06, 07:38
Super

Klasse

Andreas
24.11.06, 08:11
Spitzen Info´s

Hallo,

da ich gerade dabei bin, einen Squid zu installieren, haben mir die Infos sehr geholfen. Speziell die Delay Pools waren für mich ein wenig schwierig , aber mit der Erklärung hab ich es jetzt begriffen. :-) Auch die Tuning Tips sind sehr wertvoll .... Respekt !!!

Weiter so ...

Grüße

Andreas

Einen Kommentar hinzufügen



 Suchen:


 Umfrage

(Nur für angemeldete Benutzer)

Was wird hier am meisten vermisst?

[ Ergebnis | Umfragen ]

Stimmen: 621
Kommentare: 0

 Zitate

Programmers don't die, they GOSUB without RETURN.

-- anonymous