Tomcat 7 で実行されている struts2 Web アプリケーションが断続的に同じ問題を経験しています。
- アプリケーションは完全に正常に動作しています
- さまざまな時間 (10 分から 7 日間) が経過すると、アプリケーションの速度が低下して停止する
- catalina.out での複数の java.lang.OutOfMemory エラー
- Linux free -m は、すべての物理メモリとスワップ メモリが使い果たされていることを示します (setenv.sh で Xmx8G を設定したにもかかわらず)
OutOfMemory に自動ヒープ ダンプを作成するように Tomcat を構成しました。Eclipse で jmap または MAT を使用してダンプを分析すると、すべてのダンプが同じことを示します。すべてのメモリは、PageOutputStream によって生成されたと思われる約 100 万個の java.util.LinkedList$Node によって使用されます。
これらのノードは、Struts でのページ レンダリングの一部である PageOutputStream によって生成されているように見えるため、これらすべてのリンク リスト ノードを作成している JSP ページの 1 つに Struts タグの無限ループがあると思いますが、その方法を理解するのに苦労していますそのページが何かわかるかもしれません。
この問題をさらにコード行またはjspページに切り分ける方法を誰かが知っているかどうか疑問に思っていますか?