私の環境: Spark Thrift サーバーを介して Cassandra に接続しようとしています。次に、Cassandra テーブル データを保持する Hive メタストアにメタテーブルを作成します。Web アプリケーションでは、JDBC ドライバーを介してメタテーブルに接続します。Spark Thrift サーバーの公平なスケジューリングを有効にしました。
問題: JMeter を介して 100 人のユーザーに対して 300 秒間の同時実行性の負荷テストを実行すると、最初の要求の応答時間が 1 秒未満になります (最初の 30 秒など)。その後、応答時間が徐々に増加します (2 ~ 3 秒など)。Spark UI を確認すると、すべてのジョブが 100 ミリ秒未満で実行されます。また、リクエストを受け取ったときに、ジョブとタスクが保留段階にあることにも気付きました。したがって、タスクの実行に数秒かかる場合でも、スケジューラーによってレイテンシーで送信されると想定しています。ジョブの送信でこの待ち時間を修正するにはどうすればよいですか?
以下は私の構成の詳細です。ワーカーの数 - 2 ワーカーあたりのエグゼキューターの数 - 1 エグゼキューターあたりのコア数 - 14 ワーカーの合計コア - エグゼキューターあたり 30 メモリ - 20Gb ワーカーの合計メモリ - 106Gb
Fair Schedule XML での構成
<pool name="default">
<schedulingMode>FAIR</schedulingMode>
<weight>2</weight>
<minShare>15</minShare>
</pool>
<pool name="test">
<schedulingMode>FIFO</schedulingMode>
<weight>2</weight>
<minShare>3</minShare>
</pool>
Spark Standalone モードで実行しています。