0

私は websphere 8 で 2 つの webapps を実行しています.1 つ目は着信要求を受け入れ、2 つ目の webapps からデータを取得し、クライアントに応答を送信しています。通信は、HTTP (Axis2) 経由の W3C SOAP WebServices で実現されます。

loadUI を使用した負荷テスト中に、次のような動作を認識しました: 順次要求では高負荷が許容されますが、並列要求はほぼ即座に失敗し、2 番目の Web アプリケーションによって「接続が拒否されました」というメッセージが表示されます。

Tomcat で同じ設定を行うと、どちらの場合も高負荷が許容されます。

開いている最大接続数は 500 に設定されています。デフォルトのスレッド プールには最大 20 のスレッドがあり、デフォルトの Web コンテナには 10 のスレッドがあります。

私に役立つWebsphere設定を知っている人はいますか?

4

2 に答える 2

4

あなたと共有したかった問題の解決策を見つけました。

すべての要求により、Websphere アプリケーション サーバーで 2 つのスレッドが使用されます。1 つのスレッドは最初の Web アプリケーションで使用され、もう 1 つのスレッドは 2 番目の Web アプリケーションで使用されます。

5 クライアント (WAS では 10 スレッド) で並列に負荷テストを実行しようとしたときは、まだ機能しましたが、10 クライアント (WAS では 20 スレッド) で並列に呼び出すと、機能しなくなりました。そのため、websphere の設定を確認したところ、websphere で最大 10 個のスレッドが構成されていることがわかりました。そのため、10 個のクライアントがすべてのスレッドを使用していたとき、別のスレッドが 2 番目の Web アプリケーションに接続するのを永遠に待ちました。

そこで皆さんへのアドバイス:
負荷テストを実行するときは、次のパスからアクセスできる Websphere スレッド設定に注目してください: サーバー -> アプリケーション サーバー -> サーバー名 -> スレッド プール -> Web コンテナー。

于 2013-04-11T16:22:49.750 に答える
0

この状況の真の問題は、必ずしもスレッド プールに関連しているとは限りません。このような場合の問題は、WS (コード) がスレッドセーフ機能で開発されていないことです。

スレッドセーフが問題です。

于 2014-02-11T16:22:24.793 に答える