Abbau von nicht (mehr) benutzten TCP-Verbindungen

Apache, Lighttpd, nginx, Cherokee
dante
Posts: 128
Joined: 2010-04-20 12:50

Abbau von nicht (mehr) benutzten TCP-Verbindungen

Post by dante » 2011-06-09 09:28

Guten Morgen zusammen,


zugegeben, der Thread-Titel ist nicht wirklich aussagekräftig, aber ich will versuchen mein Problem kurz zu erklären:

Ausgangssituation ist wie folgt:
Es geht um einen Apache-Webserver (2.2.9) auf einem Debian 32 Bit mit 2.6.26er Kernel. Er dient der Auslieferung eines Webshops.

Lokal ist dort auch die (My-)SQL-Datenbank des Shops installiert (momentan nur ein Testsystem, was leider live läuft).

Da es sich um einen eCommerce Auftritt handelt, fragt der Shop per XML-Messages Daten wie z.B. Artikelpreise bei einer Middleware zwischen Shop und ERP-System an. Dieses komplette Middlewarekonzept besteht aus einem total kranken Message Broker und der eigentlichen Schnittstelle zum Shop, letzter genannte ist eine Java-Applikation.

Nun das Problem:
Ziemlich oft (min. 1x/Tag) hängt sich die Java-Schnittstelle in einem unendlichen sleep() auf und feuert scheinbar irgendeinen Dreck gegen den Apachen. Wirklich debuggen können wir das nicht, weil das Teil weder Logs schreibt noch quelloffen für uns ist.

Fakt ist, dass ich dann immer den Apache und den Broker stoppen muss und die Schnittstelle killen muss.


ABER:
Wenn der Apache gestoppt ist, werden trotzdem noch fin_wait1 sowie last_ack Verbindungen gehalten (netstat -n |grep :80).
Diese Dinger haben scheinbar einen riesigen Timeout und werden ewig nicht geschlossen.
Fakt ist, dass die Schnittstelle wieder in ein unendliches sleep() fällt, wenn diese Verbindungen noch offen sind.
Ein

Code: Select all

ifdown eth0 && ifup eth0
sowie ein

Code: Select all

/etc/init.d/networking restart
tilgt diese Verbindungen leider nicht, es hilft (aus Zeitgründen) meist nur ein Reboot.

Wie bekomme ich diese Verbindungen ohne Reboot geschlossen? (Das Problem der Schnittstelle soll nicht Gegenstand des Threads sein, das hat sich hoffentlich bald erledigt.)

Gruß
dante

dante
Posts: 128
Joined: 2010-04-20 12:50

Re: Abbau von nicht (mehr) benutzten TCP-Verbindungen

Post by dante » 2011-06-09 13:32

Ein kill -3 auf den entsprechenden Java-Prozess hat leider (sowohl auf STDOUT und -ERR) nichts auf den Schirm gebracht.

Im Startskript gib es jedoch so eine Art Logging, das kann man aber total vergessen, weil dort weder ein Timestamp drinsteht noch wirkliche Fehler.

Jedoch kille ich diesen Prozess und beende sowohl den Apachen, als auch den Broker.
Daher wundert es mich, dass dort überhaupt Verbindungen offen gehalten werden.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Abbau von nicht (mehr) benutzten TCP-Verbindungen

Post by Joe User » 2011-06-09 13:56

Die beiden Tools könnten eventuell helfen, ungetestet:
http://linux.die.net/man/8/tcpkill
http://linux.die.net/man/1/hunt
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

dante
Posts: 128
Joined: 2010-04-20 12:50

Re: Abbau von nicht (mehr) benutzten TCP-Verbindungen

Post by dante » 2011-06-09 14:10

Vielen Dank für eure Antworten,

wenn das Problem wieder auftritt (es lässt erfahrungsgemäß nicht allzu lange auf sich warten), werde ich die Ausgaben zu obigen Befehlen posten und tcpkill testen, hunt erscheint mir vorerst zu oversized (ich werds mir dennoch mal anschauen, sieht interessant aus).

Gruß
dante

dante
Posts: 128
Joined: 2010-04-20 12:50

Re: Abbau von nicht (mehr) benutzten TCP-Verbindungen

Post by dante » 2011-06-21 23:19

Hi zusammen,

ich wollte mich noch einmal zurückmelden.

Scheinbar trat das Problem auf Grund eines Fehler in unserem ERP-System auf. Das ist zwar nur ein recht wager Schuss ins Blaue, aber nach einem Update kam dieser Fehler nicht mehr vor.

Wahrscheinlich wurde ein Artikel im Web angefragt, wo dann die ERP-Queues irgendwie gemuckt haben.

Gruß
dante
Last edited by dante on 2011-06-22 00:22, edited 1 time in total.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Abbau von nicht (mehr) benutzten TCP-Verbindungen

Post by Joe User » 2011-06-22 00:01

Danke für das Feedback. Hoffe, das war die Ursache und das Update hilft.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.