我々は時折、時間の90%は非常に軽く使用されていることを弾性検索バックエンドとのNodeJSアプリケーションを持って、そしてきた影響はありません読み書き重い操作を最適化する方法を理解するには、絶対にファックです。例えば、典型的な基準では、1時間に50-100の読取り要求を受け取ることができ、1-2の書込み要求を受け取ることができる。ピーク時には、50,000の読み取り要求と30,000の書き込み要求を受け取ることがあります。弾性検索:そう
我々はその再インデックス非常に多くの書き込み要求、などがある状況に実行しているこれらのピーク時間の間に、読み取り要求がクロールされることさえあります。ウェブサイトが応答しなくなります。このタイプの負荷を処理するには、どういうわけかElastic Searchを最適化するか、アプリケーションを再構築する必要があります。そのためには、どのように最適な方法を見つけようとしています。私はよりよく理解したいのですがどのような
は次のとおりです。
1)すべてを殺すように見える、そしてどのような最適化またはそれをスピードアップするために利用可能である書き込み操作に何が起こっていますか?
2)私は速く一括操作を使用して複数のレコードを挿入することができ、コードの観点から言うことができますが、弾性検索がこれをインデックス付けない方法は、実際にシステムにあまり効率的である場合、私は思ったんだけど。バルクインサートを取り除くか、少なくともインサートのサイズを小さくすると、パフォーマンス(特に物事の読み込み側)が大幅に改善されるはずですか?この変化が物事にどのように影響するかを理解するのに役立つものはどれも参考になります。
3)書き込み操作がバックアップされている場合でも、読み取り操作がまだ動作し続けるように、読み取り/書き込み操作を分割するためにとにかくはありますか?
私は直接Elastic Searchのインサートを使うのではなく、メッセージのキューを使うことを考えていましたが、質問2に戻って、読み込み操作のためにこれを最適化する方法は肯定的ではありません。
読み込みとは別のクラスタに挿入を行い、データをマージする方法はありますか?これは多かれ少なかれ効率的でしょうか。
ありがとうございました。
エラスティック検索クラスタについて詳しく説明してください。いくつのノードがありますか?いくつの指標ですか?リーダーノード(存在する場合)?破片?レプリカ? –
経験則として、 '_bulk'を使用し、' refresh interval'を増やすと、メモリとハードディスクを同期させる間隔です。あなたのデータが何らかの形で時間に関連している場合は、 'hot-warm architecture'をテストして、'キュレーター –