PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Squid Proxy sehr langsam...



~Gh05t~
30.12.04, 10:13
Hi all,
ich habe mir mit Squid einen Proxy server für mein Netzwerk zuhause eingerichtet (ca. 6 Rechner).
Der Proxy brachte zunächst einen Vorteil wenn das Internet etwas überlastet war (an den Feiertagen um Weihnachten), im Moment habe ich aber eher das gefühl das meine Verbindung eher verlangsamt wird.
Kann mir jemand sagen woran das liegen könnte? Ich habe manchmal das Gefühl die Namensauflösung dauert etwas lange, die Seite ist nach einer längeren Wartezeit direkt komplett aufgebaut.
Der Proxy läuft transparent, wenn ich kurz die Portredirection aus der FW nehme (also ohne Proxy arbeite) geht sowohl Namensauflösung als auch Seiteaufbau in ca. einem viertel der Zeit wie mit Proxi.
Hier ist mal meine squid.conf:


http_port 8080

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

cache_mgr (meine eMail @ddy)

#####################
# Cache Options #
#####################

cache_peer www-proxy.t-online.de parent 80 0 no-digest no-query default no-netdb-exchange

# RAM-Speicher
cache_mem 32 MB

# Unteres/Unteres Cachelimit in %
cache_swap_low 90
cache_swap_high 95

# Max/Min Groesse fuer gespeicherte Dateien
maximum_object_size 256 MB
minimum_object_size 0 KB

maximum_object_size_in_memory 100 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95

cache_dir ufs /var/squid/cache 18432 64 1024

###########
# LOG #
###########

cache_access_log /var/squid/logs/access.log
cache_log /var/squid/logs/cache.log
cache_store_log /var/squid/logs/store.log
emulate_httpd_log on
log_ip_on_direct off

###########
# ACL #
###########

#acl gesperrt url_regex -i "/etc/squid/gesperrt"
#http_access deny gesperrt

acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
acl allowed_hosts src 192.168.1.0/255.255.255.0

http_access allow manager localhost
http_access deny manager all
http_access allow allowed_hosts
http_access deny all

icp_access allow allowed_hosts
icp_access deny all

cache_effective_user squid
cache_effective_group nogroup

Ich habe für den Proxi-cache ne extra Platte eingebaut die hin und wieder mal was vergisst, deshalb habe ich dem soviel HD-Speicher gegeben. Den kann ich eh für nix anderes nehmen. In meiner cache.log stehen jetzt auch schon von etwa 5 Tagen 10 I/O-Errors beim "storeDorClean" drin... ich kann mir aber nicht vorstellen, dass er deshalb so langsam ist...
Hat jemand nen Tip?

Tomek
30.12.04, 10:29
Ein paar Tipps/Ideen:

1) Deaktivere mal versuchsweise den Parent-Proxy von T-Online:

# cache_peer www-proxy.t-online.de parent 80 0 no-digest no-query default no-netdb-exchange

2) Du hast mit 18 GB einen sehr großen File-Cache. Auf welchem Dateisystem befindet sich der Cache? Ideal für den Proxy-Cache ist reiserfs3/4. Gänzlich ungeeignet ist dafür ext2 oder ext3.

3) Ändere die Speicherart für den Cache:

cache_dir aufs /var/squid/cache 18432 64 1024

4) Deaktiviere das Store-Logging:

# cache_store_log /var/squid/logs/store.log

~Gh05t~
30.12.04, 14:10
ok, hab das ma gemacht... da auf der pladde ja nix wichtiges ist hab ich auch gleich ma n reiserfs system drauf gemacht (war ext2).
So gehts schon etwas schneller. Gibts noch mehr optimierungen?

Tomek
30.12.04, 14:21
Optimieren? Ja, viel RAM einbauen und damit größeren Memory-Cache für Squid einstellen. Ebenso ist bei einem 18 GByte Cache auf der Platte eine hohe I/O-Leistung gefragt, wie SCSI das z.B. bietet.

Vielleicht solltest du lieber alle Werte bisschen runterschrauben, wie maximum_object_size und Cache-Größe auf der Festplatte. Ich denke, du hast da etwas übertrieben.

Diese ganzen Dinge bringen aber auch nix, wenn bei den Clients im Internet Explorer der Cache auf 1000 MByte oder im Firefox auf 50 MByte steht. Dann ist nämlich der Flaschenhals am Client und nicht am Proxy-Server...

~Gh05t~
30.12.04, 15:48
?? Warum DAS denn? Ich dachte der PROXY speichert die sachen, nicht der Client... wo ist das Problem wenn FireFox nur 50MB Cached? Der braucht doch mit nem PROXY gar nix cachen... der macht das doch schon... warum ist der Client ein Flaschenhals?
Ne SCSI Pladde isses mir nicht wert... der Server ist eh nur Verwertung der alten Computerteile die bei uns im Haus so anfallen...

rasi
30.12.04, 16:09
servus

probier doch mal einen dns server einzutragen

dns_nameservers 127.0.0.1 (bzw deinen normal en dns server)

vielleicht hilft das ja

gruessla
rasi

~Gh05t~
30.12.04, 16:12
probier doch mal einen dns server einzutragen

Gute Idee, werde ich gleich mal testen...

Tomek
30.12.04, 19:03
?? Warum DAS denn? Ich dachte der PROXY speichert die sachen, nicht der Client... wo ist das Problem wenn FireFox nur 50MB Cached? Der braucht doch mit nem PROXY gar nix cachen... der macht das doch schon... warum ist der Client ein Flaschenhals?
Ne SCSI Pladde isses mir nicht wert... der Server ist eh nur Verwertung der alten Computerteile die bei uns im Haus so anfallen...
Du hast da einiges nicht verstanden.

mamue
31.12.04, 09:31
Ich kann ich Tomek anschliessen. Der client-cache sollte IMHO nicht größer als 1MB sein (eine Webseite). Ich habe bei mir mal eine Hitrate von 30% erreichen können, als Halbjahresdurschnittswert. Der Wert wurde nicht besser, nachdem ich den Cache des Squid von 2GB auf 8GB vergrößert hatte. Squid ist recht unbescheiden, was den Hauptspeicherbedarf angeht, je nach anzahl clients, internet-verbindung und sonstigen Einstellungen (Object-size) sollten mehr als 128MB vorhanden sein, meine ich.
Ich glaube, dass ein DNS-cache im Netz sehr wichtig ist. Squid kann den lokalen Nameserver (resolv.conf) fragen, oder seine eigenen Routinen verwenden, aber ganz allgemein finde ich, dass ein eigener DNS-cache eine gute Sache ist.

HTH
mamue

~Gh05t~
31.12.04, 09:55
Du hast da einiges nicht verstanden.
Was muss ich machen damit ich es verstehe? Warum ist ein Client ein Flaschenhals?

Tomek
31.12.04, 10:04
Was muss ich machen damit ich es verstehe? Warum ist ein Client ein Flaschenhals?
Der Browser auf den Clients sollten den Festplatten-Cache komplett deaktivieren oder auf ein Minimum herabsetzen. Wenn der Client erst selbst seinen Cache durchforsten muss und dieser Cache noch groß ist, dann ist der Client eben der Flaschenhals und nicht der Squid-Proxy.

~Gh05t~
31.12.04, 11:47
ach soo... :rolleyes:
Na das war mir schon klar. An meinem Browser habe ich den Cache ja auch schon deaktiviert. Ich dachte DESHALB sei es ein Flaschenhals, das war mir unlogisch.
Was noch mal interessant wäre ist das DNS-Caching. Ich habe bisher einfach Routing mit der Firewall gemacht und auf dem Server bind9 als DNS-Server für DNS-Forwarding und Caching genutzt. Irgendwo habe ich gelesen, dass Squid ein eigenes DNS Caching hat, deshalb habe ich mir da nicht so große gedanken gemacht. Wenn ich den localhost als DNS-Server bei squid angebe, wird dann bind9 genutzt?

rasi
04.01.05, 10:13
servus

na davon gehe ich mal aus...

zumindest steht in /var/lib/named/var/log/named_querylog


Jan 04 11:00:42.468 client 127.0.0.1#32982: query: www.google.de IN A

und da denke ich dass es wie geplant laeuft.
und wenn ich zb named stoppe und ne (vorher noch nicht aufgerufene) seite
anfrag dauert es auch merklich laenger bis die uebertragung startet (wahrscheinlich wg. der namensaufloesung) als mit laufendem named


ABER SICHER WISSEN TU ICH SCHO MAL GARNIX :eek:

gruessla
rasi