Hi,

ein Apache2 führt auf einem Debian Lenny beim Download einer 4 MB großen EXE-Datei per HTTP zu einer Verzögerung, die den Download praktisch zum Erliegen bringt. Der Server ist als name-based Virtual Host aufgesetzt, der auschließlich statischen Inhalt ausliefert.

top, iotop, apachetop und vmstat brachten keine Überbelastung zu Tage. Für den anderen, PHP ausführenden, Virtual Host schaltete ich den php5-xcache zu, der allerdings beim problematischen Virtual Host keine Verbesserung brachte.

Wireshark meldet einige korrekt übertragene, per HTTP koordinierte, Pakete (TCP segment of a reassembled PDU) mit Window size zw. 4000 und 7000. Die entspr. ACKs enthalten eine leicht kleiner werdender TCP Window Anfrage um die 140.000! Danach sendet der Windows Client ein TCP Window Update Req im ACK Packet. Daraufhin sendet der Server nach Wartezeit eine Retransmission, die vom Client wieder (mit einer 140.000er Window size) ge-ACK-ed wird. Das darauf folgende Paket wiederum wird nicht ge-ACK-ed, was zu einer Retransmission führt. So geht das immer weiter. Der Download wird zwar aufdem Client weitergeführt, aber da laufen nur ein paar Bytes/Sek durch die Leitung.

Auf einem Ubuntu-System mit modernerem Apache2 (Version unbekannt) läuft der Download des gleichen Inhalts zum gleichen Client ohne Probleme. Routing-Probleme sind wohl auszuschließen: der User ist ein CCIE!

Google brachte keine mir erkennbare Lösung. Was kann ich auf den Debian-Apache oder -System ändern, damit das nicht auftritt?

Gruß
Silvério
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an