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!
Weitere Artikel die Sie interessieren könnten:
Data Driven Deployment einer Java Web Application mit Chef SoloChef 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-03Diese 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-27Diese 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-15Diese 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-08Diese 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-28Diese Woche Links zu den Themen aws, viapackratius, EBS, Java, AWS
SunRe-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-01Diese 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-18Diese 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-11Diese 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,...


