Tomcat: too many open files

Dieses Problem tritt häufig auf, wenn man mehrere Tomcats unter einen unprivilegierten Benutzer laufen lässt. Dies liegt daran, das für diese Benutzer strengere Regeln gelten, was das öffnen von Dateien und belegen von System-Ressourcen angeht. Doch kann man dies relativ leicht beheben. Und zwar in dem man das „open file“- Limit erhöht. Normalerweise liegt dies bei 1024 Dateien pro Prozess die gleichzeitig geöffnet sein dürfen. Zu erst kann man den aktuellen Stand einmal überprüfen mit „lsof |grep java|wc -l“. Damit sollte einen die Gesamtanzahl aller offen Dateien für die Prozesse von Java ausgegeben werden. Jetzt kann man das „open file“-Limit auf zwei Arten versuchen zu erhöhen. Einmal mit den sogenannten „soft-limits“ in der Datei „/etc/security/limits.conf“. Dort könnte man nun einmal „* soft nofile 65535“ und einmal „* hard nofile 65535“ eintragen. Allerdings zeigte sich, das dies auf einigen Server nicht zum gewünschten Ergebnis führte. Deswegen wird die zweite Lösung favorisiert. Diese besteht darin über den root-Benutzer mit „ulimit“ das Limit zu erhöhen. mit „ulimit -a“ kann man sich die aktuellen Limits ansehen. Mit „ulmit -n <Zahl>“ kann man das Limit für die geöffneten Dateien erhöhen. Gibt man es nur einmal auf der Konsole ein, gilt die nur temporär. Um dies auf Dauer zu übernehmen schreibt man es entweder in die „.bashrc“ von root oder in die „/etc/rc.local“.