çok fazla açık dosya. Sadece günlüklerinde fark, bir dağıtmaya yapıyor ve biraz için spam iken o, iskelesi başladıktan sonra sadece birkaç dakika:İskele IOException: Ben önünde nginx ile, yaklaşık 100 istekleri/sn yapan bir web sitesinde Jetty çalıştırıyorum
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:163)
at org.mortbay.jetty.nio.SelectChannelConnector$1.acceptChannel(SelectChannelConnector.java:75)
at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:673)
at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:192)
at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:708)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
bir iki dakika için. Bir "lsof -u iskelesi" yaptı ve hatları yüzlerce gördük: 192.168.1.100 sunucularının iç IP olan
java 15892 jetty 1020u IPv6 298105434 0t0 TCP 192.168.1.100:http-alt->192.168.1.100:60839 (ESTABLISHED)
java 15892 jetty 1021u IPv6 298105438 0t0 TCP 192.168.1.100:http-alt->192.168.1.100:60841 (ESTABLISHED)
java 15892 jetty 1022u IPv6 298105441 0t0 TCP 192.168.1.100:http-alt->192.168.1.100:60842 (ESTABLISHED)
java 15892 jetty 1023u IPv6 298105443 0t0 TCP 192.168.1.100:http-alt->192.168.1.100:60843 (ESTABLISHED)
. Gördüğünüz gibi
, bu sadece bu artabileceğini 1024 varsayılan maksimum açık dosya sayısını getirdi ama bu ilk etapta bunun neden merak ediyorum? Jetty'nin nio soket alıcısında, bu yüzden bağlantı isteklerinin bir fırtınadan kaynaklanıyor mu? İskelesi'ne bir hata olsa da
Her yuva yüzden her bağlantısı bekleyen olsa bile bir dosya (açıklayıcısı) vardır, bir dosyadır. Bir istek tipik olarak ne yapar ve ne kadar sürer? İskelede 100 istek/saniye ile, 2 s/istek alarak yerel bir db sunucusunu sorgulamak zaten 400 "dosyalarınız var". – extraneon
İsteklerimin çoğu sadece birkaç ms sürüyor, ancak uygulama ilk başladığında birkaç saniye sürebilir, sanırım orada ne olduğunu düşünüyorum. Çöp toplayıcısı da bazen "dünyayı durdur" duraksamasını yapar, bu da tüm taleplerin kısa bir süre için yığılmasına neden olur ve bu da aralıklı olarak ortaya çıkar. GC'yi daha sonra ayarlamak zorunda kalacağım, bu arada limiti arttırdım. –
Zaman zaman Tomcat6'da benzer bir şey alıyorum, başlangıçta oyuncaklarını fırlayan işletim sistemi olduğunu düşündüm. Ayrıca sınırını geçici bir çözüm olarak artırdım. –