
Hallo, On 2/23/2006 10:32 PM, Günther Zisham wrote:
Hallo Leute,
ich kämpfe momentan mit einer extrem hohen Squid-Belastung, kennt das jemand von Euch?
Nö.
Das tritt vor allem zu Stoßzeiten auf.
Dann heisst das wohl dass es tatsächlich ein Problem ist. Wobei ich unterstelle dass Stosszeiten die Stosszeiten der Web-Zugriffe meint.
Hier kurz die ersten paar Zeilen von "top" (2 CPUs):
top - 22:21:24 up 19 days, 5:42, 2 users, load average: 0.64, 1.05, 1.12
Finde ich nicht extrem hoch.
Tasks: 118 total, 2 running, 115 sleeping, 0 stopped, 1 zombie Cpu(s): 13.9% user, 43.4% system, 0.0% nice, 42.7% idle
Auch hier - nicht extrem hoch. Allerdings hohe system-Zeit. Hast Du mal mit vmstat geprüft was da so an I/O oder gar *graus* swapping läuft?
Fakt ist, dass dieser Server einiges an Traffic hat. Squid wird momentan hauptsächlich zur Kontrolle der Zugriffsrechte eingesetzt. Würde es helfen, den Cache von squid auf 0 zu reduzieren? Wenn dadurch die Datenmenge etwas steigt, ist das eigentlich egal, da sowieso nur ein kleiner Teil der Anfragen aus dem Cache beantwortet werden kann. Wo kann ich einen "non-caching-squid" konfigurieren?
Einfach mal die Konfigurationsdatei durchgehen, die ist ausführlich dokumentiert. Sollte man als Squid-Admin sowieso kennen :-) Im übrigen erlaubt Squid auch ganz gut das Performance-Monitoring. Pers SNMP + selbstgebautes Script + Nagios + NagiosGrapher kann man da auch über die Zeit hinweg einiges loggen. Ich beobachte bei "meinem" geringst-belasteten Squid z.B. lediglich Cache-Hit-Rate, CPU-Nutzung, Clients, Cachegröße und Objektzahl, aber da ist noch viel mehr möglich. Damit würde ich anfangen, einfach um zu sehen ob bestimmte Engpasse damit schon zu identifizieren sind. Ansonsten kann es helfen den Disk-Cache nicht viel größer als den Speicher-Cache zu machen, so dass Squid weniger mit Disk-I/O zu kämpfen hat. Mehr Arbeitsspeicher für Squid kann natürlich auch helfen, hier kann man bei kurzer Cache-Lebensdauer und Beobachtung der Cachegröße relativ gut rauskriegen was tatsächlich sinnvoll ist. Im Übrigen müsste man das tatsächliche Zugriffsprofil kennen um konkrete Tips zu geben, das access-log von Squid hilft auch da. Z.B. kann es sehr gut sein dass in der Mittagspause all 500 Mitarbeiter gleichzeitig www.spiegel.de lesen wollen - dann eben reichlich Cache aktivieren und im Laufe des Vormittags schon mal 'nen Crawler dahinschicken ;-)
Wie gesagt, es ist eine 2-Prozessor-Maschine (2 x 3 GHz) und läuft unter SuSE 9.0 mit Kernel "2.4.21-291-smp4G".
Speicherbelegung: # free total used free shared buffers cached Mem: 1032028 1003160 28868 0 178212 482164 -/+ buffers/cache: 342784 689244 Swap: 1052216 27488 1024728 (Die Buffers habe ich vor kurzem mal ungefähr verdoppeln müssen)
Warum? Wegen Squid? Das schiene mir nicht soooo sinnvoll - Squid braucht RAM, Platte ist nur die Notlösung.
Sollte ich den Speicher aufrüsten?
Habt ihr andere Ideen, wie ich die Belastung verringern kann?
Ich würde, wie gesagt, erstmal genauer anlysieren. Dann ggf. probieren was mit mehr oder weniger RAM und Plattencache für Squid passiert. Schlimmstenfalls und wenn der Squid tatsächlich richtig Traffic abfangen kann eben mehrere Proxies aufsetzen, aber das ist dann ein Rechenspiel für die Buchhalter.
Danke im voraus für eure Hilfe, Günther
Arno -- IT-Service Lehmann al@its-lehmann.de Arno Lehmann http://www.its-lehmann.de