2016-09-21 7 views
1

最近、私たちのシステムはCPU使用率が急上昇しました。その根本的な原因はまだ不明です。私たちは毎晩バルクインデックス作成の仕事をして、ほとんどすべてのドキュメントを更新しているので、過去にはメモリ使用量やディスクアラートが高くなっています。しかし、高いCPU使用率は問題ではありません。これまで収集検索応答時間が2倍になりました。

データ:(6つのデータノードのうち3マスター)

ノード03は、1秒の応答時間スパイクをもたらす、5分間、高いCPU使用率(> 95%)を患っ平均応答時間は40msです。 メトリックを見ると、特定の高CPUノードのインデックスカウントにわずかな差がありましたが、同時に若いGCには若干のバンプがありました(どちらの場合もスパイクのようなものはありません)。

私はカフカ消費者にデータの任意の時刻にバルクインデックスデータを受け付けるが、最大250dpi /秒の速度で制御されているので、バルクコール。

また、私はまだ解読できませんが、ホットスレッドのエンドポイントでデータがありました。

Hot threads

更新

以前の観察が間違っていたので、質問のタイトルを更新しました。主な懸案事項は、応答時間が2倍になり、しばらくして使用量が安定したため、高いCPU使用率ではありません。

いくつかの開発があります。スパイクの後、CPU使用率は徐々に低下し、正常です。 しかし、私たちの応答時間は一貫して100〜250ms(通常の平均値 - 35〜100ms)です。

現在、レスポンスには、歯面に近い(正確には均一な歯面)パターンがあります。

Response time

また、スパイクが発生した古いGC数の小さなバンプがありました。

ノードの統計情報に異常がありません。発見されると更新されます。まだ調査のために投稿しています。また、最近のホットなスレッド投稿

node stats

-

hot_thread_2

+0

ログにアクセスできる場合は、CPUスパイク中に実行したクエリの種類を確認してください。結果をソートするのはCPU集中です。膨大な数の結果を返すクエリを実行している可能性があります。ちょっと推測すると... – jay

+0

@ jay私たちは、ハードコードされた結果サイズの値を持つビジネスロジックのセットアップを持っています。また、anamolyのログもチェックしました。何も見つかりませんでした。 –

+0

すべてのホットスレッドは検索に関連しています。スパイク中にホットスレッドをダンプするのですか?あなたの質問に変更がありましたか?集約?これらのサーバで監視設定を行っている場合は、スパイク時にノード03が重いマージを行っていたかどうかを確認できますか? – jay

答えて

0

をノード03は間違いなく重いインデックス化を受けているようです。

   "bulk": { 
       "threads": 8, 
       "queue": 0, 
       "active": 0, 
       "rejected": 0, 
       "largest": 8, 
       "completed": 9528532 

は、私はいくつかのより多くの事は、私が03に気づいたノードノード03と04の統計を比較

  • 4144165のドキュメントが、256087749(index_total)インデックス作成要求?
  • ノード03には41個のopen_contextがあります。したがって、あなたはこの統計を取った時点で41の検索リクエストがあります。その他のノードはすべて0です。
  • ノード03とノード01のマージ数は、他のノードに比べて非常に高いです。

特定のドキュメントを特定のノードに送信するルーティングロジックはありますか?あるいは、これらのノードには頻繁に更新されるインデックスが含まれているかもしれませんか?

また、スパイクを見たときに、ノード03のインデックスでuまたはアプリケーションが最適化を発行しましたか?ノードの統計情報を見ると、03は「完了」最適化を持つ唯一のノードです

"optimize": { 
       "threads": 1, 
       "queue": 0, 
       "active": 0, 
       "rejected": 0, 
       "largest": 1, 
       "completed": 1 
      }, 

また、あなたのrefresh_intervalは何ですか? ESのデフォルトは1秒です。一括索引作成中に多くのマージが発生する可能性があります。

+0

インデックス作成リクエストの数が増加したのは、ほとんどすべてのドキュメントを更新する深夜の仕事があるためです。また、現在、現在検索リクエストをルーティングするロジックがありません。現在、すべての検索要求を最初の3つのノードに送信します。 さらに、バルクインデックス作成は主に深夜に実行され、その間に検索応答が上がっても大丈夫です。現在のrefresh_intervalは1秒に設定されています。 –

+0

ルーティングの問題について。私は、1つのノードだけがすべての検索要求を受け取っているとは思わない。適切なルーティングロジックはありませんが、アプリケーションサーバーは可用性に基づいてノードに要求を送信します。それでも、単一のノードを狙うほどの検索要求はありません。 –

関連する問題