影響

2016-08-15 11 views
0

私は最近、Apacheの嵐を使用して開始しています。今では、一度に複数の並列リクエスト処理を可能にするために、アプリケーションのパフォーマンステストとチューニングに重点を置いています(NoSQLデータベースからデータを引き出し、フォーマットし、JMSキューにパブリッシュしてリクエスタが消費します)。私は、トポロジーを変更するという点でトポロジーを調整することができました。ボルト、MAX_SPENDING_SPOUTなどを使用して、いくつかのティッキングアプローチを使用してトポロジ内のデータフローを抑制することができます。影響

私は、我々が持っているコアの無いよりも多くの並列処理を定義するときに何が起こるかを知りたいと思いました。私の場合は、単一のノードと単一のワーカートポロジがあり、マシンには32のコアがあります。しかし、(すべての注ぎ口とボルト用)エグゼキュータの一切の合計が60だから私の質問がある=ん:

  1. この高い数値は実際に処理要求を助けないか、私はそれ以上があるだろうと信じているので、それは実際には、パフォーマンスが低下していますコアを利用するためのボルト作業間のコンテキスト切り替え。私はボルトと私のコードの流れのための20(単なるランダム選択)執行を定義する場合、これはパフォーマンスに影響を与えることになる

  2. 、ボルトを利用する必要はありませんか?嵐はこの状況をどのように扱いますか?

答えて

0

これは非常に一般的な質問ですので、答えは(いつものように)それに依存します。

あなたの負荷が大きく、単一executorが完全にあなたにスループットの向上を与えることができない多くの執行を持つ、完全にコアを利用した場合。何らかの影響がある場合、それは否定的である(すべての実行者がタプル転送を読み書きする必要がある内部的に使用されるキューの競合に関しても)。

負荷が「小」で、CPUを完全には活用していない場合は、コアが完全に活用されていないためにヘッドルームを残してしまいます。

さらに、その嵐は各ワーカーの中にいくつかのより多くのスレッドをまたがる考えます。したがって、エグゼクティブがハードウェアを十分に活用すると、それらのスレッドも影響を受けます。

全体的に、あなたは完全にとにかくコアを利用するために、あなたのトポロジを実行しますが、操作には、小さな「スパイク」などのフォームヘッドルームを残すべきではない、多分80%のCPU使用率は良い値かもしれません。経験則として、コアごとに1人のエグゼキュータがOKである必要があります。

関連する問題