# Too many open files



## Beni (22. Nov 2010)

Hallo. Ich bastle an einer Server-Andwendung herum, die auf einem Ubuntu-Rechner laufen soll. Nach 1 bis 2 Wochen kommt eine "too many open files" Meldung, und alles stürzt zusammen. Mit anderen Worten: irgendwo wird irgendwas nicht richtig geschlossen. 

Wenn ich mit lsof die offenen Files suche, bekomme ich etwa 1000 solche Zeilen:

```
COMMAND  PID        USER   FD   TYPE     DEVICE SIZE/OFF  NODE NAME
[...]
java    1539 beni 1000u  unix 0xf098f800      0t0 47875 socket
java    1539 beni 1001u  unix 0xf098f800      0t0 47875 socket
java    1539 beni 1002u  unix 0xf098f800      0t0 47875 socket
```

Ich habe mich schon dumm und dämlich gesucht: gibt es irgendeinen Weg herauszufinden wohin diese Sockets gehen (der andere Endpoint)? Oder ob sie garnicht verbunden sind? 
Die Anwendung besteht aus sehr vielen Untersystemen, und so eine Information würde die Suche nach dem Bug stark vereinfachen.


----------



## Der Müde Joe (22. Nov 2010)

Benutzt du zufällig Axis? Kann mich da mal an dieses 'Phänomen' erinnern. Irgendwie so:
The Java Monkey...: Axis 2 Clients - Socket Exception - Too many open files - Cleaning up idle connections.


----------



## Beni (22. Nov 2010)

Ne, benutzen wir nicht. Aber es kann schon sein, dass eine Library die Ursache ist. Obwohl, eigentlich sind das alles bekannte Libs, da wären wir nicht die Ersten die so einen Fehler sehen: mysql, C3P0, Jetty, mail/mailapi. Andere Libs (slf4j, jfreechart, google-collactions) haben eigentlich nichts mit sockets zu tun, und scheiden daher wohl aus.


----------



## Noctarius (22. Nov 2010)

Unter Linux:
Linux & Java tips: Too many open files


----------



## Beni (22. Nov 2010)

Noctarius: Das ist leider nur Symptombekämpfung :noe:


----------



## Noctarius (22. Nov 2010)

Naja wenn man große Systeme hat kommt das halt irgendwann, da auch Port- und Socketverbindungen als Files behandelt werden


----------



## Beni (22. Nov 2010)

Das ist schon so, aber in einem normalen System sollte nicht dieselbe Zeile mit denselben Werten 1000 mal auftauchen


----------



## Vayu (22. Nov 2010)

FD steht doch für File Descriptor oder?
Hiermit kriegste mehr infos über die File Descriptors:
lsof - Wikipedia, the free encyclopedia

Evtl hilft das weiter


----------



## Beni (23. Nov 2010)

Hab ich schon ausprobiert, hat leider nicht viel gebracht. Naja, ich bau mir mal ein paar Zähler ein, vielleicht taucht mal noch was auf.


----------

