0

JSFでquasarを最適に動作させるにはどうすればよいですか? 私は、FiberHttpServlet の行で Comsat Quasar 統合を使用して JSF プロジェクトを作成しましたが、数値の改善は見られません。

私のプロジェクトはここにあります: https://github.com/sanketsw/Quasar_JSF_Demo

残念ながら、ファイバーは、JMeter (50 スレッドに制限されたサーバーと 3000 人のユーザーを実行する JMeter テスト) からテストされたときに、ポジティブな影響を与えることがわかりませんでした。応答は、500 ユーザーまでの javax.faces.webapp.FacesServlet とまったく同じでした。3000 人のユーザーの場合、リクエスト失敗のエラー率は高く、応答時間も成功したリクエストの通常の FacesServlet よりも大幅に長くなりました。

このスレッドにさらに取り組み、より良い結果が得られた場合は、お知らせください。または、設定に誤りがないか確認してください。

4

1 に答える 1

1

スレッドではなくファイバーを使用して HTTP 要求を処理することの利点は、リソースがはるかに少ないスレッドよりも多くのアクティブなファイバーを使用できることです。そのため、同時実行数が少ない場合の平均応答時間ではなく、同時実行数の増加に改善が見られる可能性があります。50 の同時リクエストのみを実行する場合 (それはあなたの説明から理解できることですが、GitHub プロジェクトでベンチマーク スクリプトが見つかりませんでした)、スレッド プール サイズが 50 を超える通常のスレッドベースのサーブレットを使用するだけで、おそらくより良いレイテンシーを取得します(リクエストの完了を遅らせたり、サーブレットコンテナー内でそれを追跡するために必要なすべての機械を使用したり、キャッシュへの影響などを伴う潜在的なスレッドハンドオーバーを使用したりしないため)。

ファイバーの利点 (非同期サーブレットまたは他の非同期フレームワークのように、プログラミングがはるかに面倒ですが) は、ボックスがサポートできるスレッド (たとえば 15k 以上) よりも多くの同時要求をサポートできることです。 )、これは通常、非常に高いリクエスト レートでヒットしている、またはリクエストにかなりの処理時間が必要であることを意味します。また、通常、このような高い速度では、OS ネットワーク スタックを調整して、より多くのファイル記述子を開いたり、接続のターンアラウンドを高速化したりする必要があることにも注意してください。

また、最近リリースされた Comsat 0.6.0 では、サーブレットと Web アクターのパフォーマンスが向上していることにも注意してください。いずれにせよ、Comsat サーブレットは、それらを実行するサーブレット コンテナーのサーブレット非同期機能に依存しているため、その実装にバグがある場合やあまり効率的でない場合、これは Comsat サーブレットにも引き継がれます。Undertow で良い結果が得られました (サービスを利用可能にする前に、最初の要求が完了するのを待ってください。そうしないと、エラーが発生します)。

注: 私は Parallel Universe チームの一員です。

于 2016-02-16T06:26:58.273 に答える