Re: TCP... manchmal

From: Oliver Fromme <olli(at)secnetix.de>
Date: Sun, 28 Jan 2001 19:00:00 +0100 (CET)

Jan Muenther <jan(at)radio.hundert6.de> wrote:
> werde hier gerade wahnsinnig.

Gaaanz ruhig. Allet wird jut. :-)

> icecast und Zope aus den Ports installiert. So hoopy, so froody.
> Alles läuft ganz klasse. Nur, nach einiger Zeit, ohne
> irgendwelche Spuren in irgendeinem Logfile zu hinterlassen, hört
> Zope einfach auf zu laufen.

Kenne Zope nicht, kann dazu nichts sagen. Tippe auf Bug in
Zope.

> Damit nicht genug, als ich gerade versucht habe, auf die Büchse
> zu telnetten, habe ich erst einmal ein 'Connection refused'
> gesehen. Beim zweiten Versuch (unmittelbar danach) ging's dann...

Klingt nach einem Resourceproblem. Wenn der inetd nicht in
der Lage ist, genug Resourcen an Land zu ziehen, um eine
Connection anzunehmen (um sie dann einem telnetd zu überge-
ben), dann führt das genau zu dem von Dir beschriebenen
Symptom.

Erster Verdächtiger ist die Anzahl der verfügbaren File-
descriptoren. Ohne Filedescriptor kein Socket, ohne Socket
keine Verbindung. Hat vielleicht irgendein amoklaufendes
Programm (Zope??) alle Filedescriptoren ,,absorbiert``, so
daß der inet keinen mehr gekriegt hat? Nur so eine Idee.

Die aktuelle Belegung sowie das Maximum kannst Du Dir mit
,,pstat -T`` anzeigen lassen. Hier schaut das z.B. so aus:

   158/4136 files
   0M/511M swap space

D.h. 158 von 4136 Filedescriptoren sind zur Zeit in Benut-
zung. Wieviele Dir zur Verfügung stehen, hängt von ,,max-
users`` in Deinem Kernel ab, Du kannst es auch direkt per
,,options MAXFILES=xxxx`` einstellen, und dann gibt es da
noch die sysctls kern.maxfiles und kern.maxfilesperproc.
Evtl. wäre es sinnvoll, letzteres herunterzusetzen, dann
kann schonmal kein einzelner Prozeß sämtliche Filedescrip-
toren absorbieren.

Außerdem ist es keine schlechte Idee, per Login-class die
Anzahl der Filedescriptopren für Benutzer zu limitieren,
und insbesondere auch für bestimmte Daemonen, von denen
man genau weiß, daß sie nicht mehr als eine bestimmte An-
zahl benötigen sollten.

> Beim zweiten Versuch (unmittelbar danach) ging's dann...
> häh? Ich glaub schon an Gespenster...

Naja, irgendein Prozeß ist in der Zwischenzeit terminiert,
wodurch es wieder ein paar verfügbare Filedescriptoren gab,
und so konnte der inetd einen (oder mehrere) für den tel-
netd erwischen.

> Icecast läuft zwar und frißt einiges an CPU und Speicher, aber
> das ist ja dann doch eher heftig...

Frißt es vielleicht auch Filedescriptoren?

Ist natürlich nur ein Verdacht, aber die Symptome sind ty-
pisch dafür. Wenn es nicht die Filedescriptoren sind, wür-
de ich als nächstes mal die MBufs im Auge behalten (siehe
,,netstat -m``).

> Hat jemand eine Idee? Maxusers habe ich 64... zuviel, zuwenig?

Wie üblich: Kommt drauf an.

> Kann ja eigentlich nicht der Knackpunkt sein, icecast ist nur 1
> Prozess (laut top)...

Ein einzelner Prozeß kann genügen, um eine ganze Menge von
Systemresourcen zu binden. ;-)

> Oh, bitte keine Ermahnungen wg. telnet... ich verwende sonst auch
> nur ssh, aber noch steht das Teil direkt neben mir und ist in
> unserem internen geswitchten Netz.

An telnet ist nichts verwerfliches, ich verwende es gele-
gentlich auch. Es gibt Situationen, wo ssh ohnehin nichts
bringt oder sogar kontraproduktiv ist, weil es eine nicht
vorhandene Sicherheit vorgaukelt. S/key ist Dein Freund.

Man sollte natürlich immer genau wissen, was man tut. ;-)

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 28 Jan 2001 - 19:00:04 CET

search this site