2016-07-20 11 views
0

2つのノード・エージェントと4つのアプリケーション・サーバーを持つWebSphere環境があります。高トラフィックでは、アプリケーションサーバーの1つがリクエストに対する応答を停止し、要求が最大のWebコンテナスレッド数にジャンプします。
スレッドダンプの解析では、スレッドの約60%が実行可能状態にあり、待機状態と待機状態のそれぞれが20%であることがわかりました。
スレッドダンプにデッドロック警告が表示されません。WebSphereのWebコンテナ・スレッドは、実行可能な状態で最大スレッド状態でハングします

Owns Monitor Lock on com/ibm/ws/classloader/[email protected] 

誰かが上記のエラーとその解決の理解を助けてもらえ: では、密接に、我々はWebコンテナのスレッドは、以下のいずれかのメッセージとロックを所有していることを発見した見て?

+0

Websphereログにエラーがありますか? –

+0

ffdcエラーのようなより多くのデータを提供できますか? –

+0

ログには、データベースインスタンスの問題またはスケーラビリティの問題があります。大量のトラフィックが発生すると、データベースの応答時間が増加していることがわかります。たとえば、1秒から5秒です。即時の解釈は、私たちはゆっくりと、最終的にその最大容量にアプリケーションサーバーを取っているデータベースで窒息されたということでした。我々はデータベースの終わりにリソースを倍増させましたが、問題は依然として続きます。スレッドダンプログに上記のエラーが表示されるようになりました。 M.Dogru @ –

答えて

1

ロックを所有するスレッドのスタックトレースを調べ、そのロックを待機している他のすべてのスレッドのスタックトレースを調べることが重要です。 ExtJarClassLoaderの場合、すべてのスレッドがloadClass操作を実行しようとしていることをほぼ確実に意味します。多くのスレッドがこれを試みてブロックされている場合、これは通常、実行中のコードがに失敗して loadClass操作を試みて、ClassNotFoundExceptionをキャッチして続行していることを意味します。 ClassNotFoundExceptionが作成し、投げることは高価なので、コードは通常、全体の結果をキャッシュするように変更する必要があります(それは、クラスのロードのシーケンスをしようとしている場合、例えば、正/負の結果が何らかの形でキャッシュされるべき)。 loadClassを呼び出すコードが第三者のライブラリである場合、これはもちろん複雑になります。

+0

より支援が必要な場合は、分析するこれは単一のzipファイルにまとめ、すべての収集javacoreファイルを圧縮しhttps://wait.ibm.com/にアップロードスレッドダンプとアプリケーションがボトルネックされたレポート。 –

関連する問題