2GBのRAMを搭載したdebian-lennyx64サーバーで、apache2.2とmod_jk1.2.26を使用してtomcat7を実行しています。
サーバーに奇妙な問題があります。数時間ごと、場合によっては(負荷がかかっている状態で)数分ごとに、tomcat ajp-connectorがメモリリークエラーで一時停止しますが、このエラーはシステムの他の部分(たとえば、他の部分)にも影響するようです。実行中のアプリケーションも動作を停止します)&しばらくの間問題を解決するためにサーバーを再起動する必要があります。
catalina.outを数日間チェックしましたが、次のメッセージでajpを一時停止する直前に固有のエラーパターンがないようです。
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
一時停止する前に、次のメッセージが表示されることがあります。
Exception in thread "ajp-bio-8009-Acceptor-0" java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:597)...
&時々これ:
INFO: Reloading Context with name [] has started
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:597)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5482)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:230)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3847)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:424)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1214)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1400)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1410)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1410)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1389)
at java.lang.Thread.run(Thread.java:619)
java.sql.SQLException: null, message from server: "Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug"...
&他の場合には、プログラムの他の部分に関連する出力メッセージ。
アプリケーションのソースコードを確認しましたが、問題が発生することはないと思います。jConsoleを使用してメモリ使用量も確認しました。ワンダーフルポイントは、サーバーに障害が発生すると、ヒープと非ヒープの両方のjvmメモリスペースに大量の空きメモリが表示されることです。前に言ったように、サーバーをクラッシュさせた後、他の多くのアプリケーションも失敗し、それらを再起動したいときに、リソースに一時的に利用できないというメッセージが表示されます(limits.confファイルも確認しました)。
ですから、私はこの深刻な問題と何日も本当に混乱していて、それについてはもう何も考えていません。だから、誰かがこの複雑な&を解決するために私にどんな種類の提案をしてもらえますか?未知の問題???
このエラーの最も考えられる理由は何でしょうか?