Re: Apache und FIN_WAIT_2

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 21 Apr 2006 17:36:36 +0200 (CEST)

Philon Terving <philon(at)macnews.de> wrote:
> Oliver Fromme schrieb:
> > Philon Terving <philon(at)macnews.de> wrote:
> > > Dieser hat doch wirklich die Angewohnheit eine ganze Menge
> > > Verbindungen des Apachen offen zu halten (o.g. FIN_WAIT_2).
> >
> > Was heißt »eine ganze Menge«? Sind es so viele, daß es ein
> > konkretes Problem verursacht, oder stört Dich nur die lange
> > Ausgabe von »netstat -an«?
>
> es schwankt zwischen 100-150, das verwunderte mich einfach.

Die Zahl würde ich als normal ansehen.

> Ab und an
> verliert der Apache-Mutterprozess auch seine Kinder und meldet dann
> "Long lost child came home". Ich überlegte ob das damit in Zusammenhang
> zu bringen sei.

Sowas habe ich noch nicht gesehen. Aber ich denke, daß das
nichts miteinander zu tun hat.

> > Verbindungen in FIN_WAIT_2 sind »halb geschlossen«, d.h.
> > die lokale Seite ist geschlossen (und dies wurde auch vom
> > Partner bestätigt), und es wird auf den FIN vom Partner
> > gewartet (oder ein RST). Bis das passiert, können noch
> > Daten empfangen, aber nicht mehr gesendet werden.
>
> soviel hatte ich auch ergooglet. Es blieb nur die Frage ob der FIN vom
> Partner nicht kommt oder obs an mir liegt. Ein tcpdump wird mir darüber
> vielleicht noch Aufschluss geben können.

Das kann verschiedene Ursachen haben. Denkbar auch, daß
Clients auf Deinen Apachen zugreifen, die HTTP-Bugs haben
und z.B. kein korrektes Keep-alive machen. Das kann dazu
führen, daß der Apache denkt, es sei jetzt alles erledigt
und er könne die Verbindung zumachen, während der Client
der Meinung ist, er könne zu einem späteren Zeitpunkt noch
einen Request nachschicken.

> das Problem ist, dass dieser Rechner eigentlich längere Zeit ohne Update
> rumdümpelt, da im fernen RZ positioniert. Ein SSH-Update 4-5-6 hatten
> wir hier auch mal kurzfristig diskutiert, insgesamt ist mir die Sache
> aber eher zu heiss. Der Hardwarewechsel kommt da schon ganz recht.

Ich habe neulich remote ein Binär-Update von 4.11 auf 6.1
gemacht. Allerdings hatte ich Zugriff auf die serielle
Console (und den habe ich auch gebraucht).

> IPFW2 im 4.11er Kernel manuell zu aktivieren, bereitete sowieso einige
> Umstände.

Hmm. Wieso? Das ist doch einfach. IPFW2=yes in make.conf
setzen, libalias und ipfw(8) neu bauen, und den Kernel mit
»options IPFW2« neu bauen.

> > FreeBSD hat einen Timeout von 10 Minuten (tcp_maxidle).
> > Wenn sich also nach dem Empfang des FIN+ACK-Packets 10 Mi-
> > nuten lang gar nichts tut, wird die Verbindung gelöscht.
>
> ich hatte die Ausgabe von netstat immer wieder beobachtet und mir kam es
> vor als würden über Wochen hinweg immer die selben Hosts "hängen".

Vermutlich immer wieder aufs neue. Das spricht für die
Theorie, daß es sich um Bugs in den Clients handelt.
(Würden sie längere Zeit hängenbleiben, müßten sie sich
ja zu einer immer größeren Anzahl akkumulieren. Das
ist aber offenbar nicht der Fall.)

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"... there are two ways of constructing a software design:  One way
is to make it so simple that there are _obviously_ no deficiencies and
the other way is to make it so complicated that there are no _obvious_
deficiencies."        -- C.A.R. Hoare, ACM Turing Award Lecture, 1980
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 21 Apr 2006 - 17:42:48 CEST

search this site