Das Symptom

Tomcat reagiert nur mehr mit einer HTTP 500 Fehlermeldung. In den Catalina Logfiles (catalina.out) sieht man Einträge der Art:


org.apache.tomcat.jni.Error: Too many open files
       at org.apache.tomcat.jni.Socket.accept(Native Method)
       at org.apache.tomcat.util.net.AprEndpoint$Acceptor.run(AprEndpoint.java:1110)
       at java.lang.Thread.run(Thread.java:619)
Mar 12, 2009 12:01:34 PM org.apache.tomcat.util.net.AprEndpoint$Acceptor run
SEVERE: Socket accept failed

Dann hat man sehr wahrscheinlich Probleme mit File-Handles. Es kann nun sein, dass die Applikation so gebaut ist, dass man hier die Konfiguration der Infrastruktur anpassen muss, oder dass man es mit einem Bug in der Applikation selbst zu tun hat.

Um sicher zu sein … lsof und ulimit sind deine Freunde

Um die aktuelle Konfiguration zu sehen verwendet man ulimit

ulimit -a:


$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 13664
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 13664
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

interessant ist die Zeile mit

open files (-n) 1024

die hier zeigt, dass man im Moment 1024 offene File-Handles pro Prozess haben darf.

Wieviel File-Handles “verbraucht” Tomcat? Frag lsof!

Um die aktuell offenen File-Handles zu sehen kann man das Kommando lsof verwenden.

lsof |grep tomcat zeigt alle offenen File-Handles von Tomcat (oder für Java: grep java)

Um diese Ausgabe mit den Einstellungen zu vergleichen können wir wc verwenden :-)

$ lsof |grep tomcat|wc -l
136

wc zählt die Anzahl der Zeilen.

Wenn man hier nun einen vernünftigen Wert bekommt, kann man die Konfiguration anpassen. Das macht man wieder mit ulimit

ulimit -n <value> lässt uns einen Wert setzen. Ein möglicher Wert wäre zum Beispiel 4096. Aber: Sollte der ermittelte Wert sehr gross sein ( e.g. > 5000 ), dann sollte man eher nach einem Fehler in der Applikation suchen.

Und nicht vergessen: Tomcat muss neu gestarten werden, damit die Einstellungen wirksam werden!

blog comments powered by Disqus

Weitere Artikel die Sie interessieren könnten:

Data Driven Deployment einer Java Web Application mit Chef Solo

Chef Application Cookbook Showcase Dieses Vagrant Projekt auf unserem Github Repository ( https://github.com/iteh/vagrant-demos/ ) zeigt die Verwendung des Application Cookbooks für Chef

Links der Woche vom 2011-03-28 bis 2011-04-03

Diese Woche Links zu den Themen design, utilities, rails, asciicast, gem, ux, Awesome, jQuery, devops, Git, radiantcms, rvm, opschef, osx, MacRuby, chef, opscode, Rails, i18n, java, Vagrant, automation, Typography, Type

Links der Woche vom 2011-03-21 bis 2011-03-27

Diese Woche Links zu den Themen MacRuby, Java, Ruby, Mirah, CSS, refreshtoplayagain, gainsboro, photo, Design, mechanize, capybara, PHP, Rails, html5, webdesign, XCode, iPads, WordPress, Vagrant, Opscode, RUBY, Selenium, php, opschef, osx, devops,...

Links der Woche vom 2010-08-09 bis 2010-08-15

Diese Woche Links zu den Themen viapackratius, fb, i, Java, Twitter, opschef, Sphinx, Radiant, Google, Git, GitHub, git

Links der Woche vom 2010-08-02 bis 2010-08-08

Diese Woche Links zu den Themen viapackratius, i, opschef, java, appengine, Twitter, fb, opscode, xng, ITIL, agile, Devops, sysadmin, agile2010, css, radiant, chef, github, git

Links der Woche vom 2010-03-22 bis 2010-03-28

Diese Woche Links zu den Themen aws, viapackratius, EBS, Java, AWS

Sun

Re-launch vom HPC (HomePageCenter) Portal der T-Online. QA Tests und Reporting, Troubleshooting , Bug Fix von Modulen, Deployment Plannung und Implementierung von Portlets. Kunde:Sun/T-Online Online: Zeitraum: 2007, 2008 Services: Solaris, Java,...

Links der Woche vom 2009-10-26 bis 2009-11-01

Diese Woche Links zu den Themen pingfm, jquery, css, menu, Apart, Elisabeth, Mieming, Miemingerplateau, Mieminger, Plateau, Tirol, tomcat, opschef, opscode, cookbook, google, wave, sap, marketing, networking, maps, navigation, android, gaistal,...

Links der Woche vom 2009-10-12 bis 2009-10-18

Diese Woche Links zu den Themen pingfm, mac, mini, eyetv, twitter, chef, opschef, opscode, opscookbook, sysadmin, juitter, jquery, Marketer, facebook, iphone, ipod, apple, apache2, java, tomcat, css

Links der Woche vom 2009-10-05 bis 2009-10-11

Diese Woche Links zu den Themen pingfm, webdesign, css, js, javascript, vector, graphics, visage, collectd, statitics, Hochzeitstorten, Torten, Kuchen, Hochzeit, opschef, AWStats, Webalizer, radiantcms, radiant, cms, bespin, sozialnetwork,...