2017-08-01 11 views
0

私は自分のプロジェクトのエラスティックサーチでパフォーマンスチューニングを行っています。エラスティックサーチのインデックス速度を向上させるためにいくつかの助けが必要です。私はES 5.1.1を使用しています。インデックス用に8つのシャードを持つ2つのノードセットアップがあります。私は、2.2GHzのクロック速度で各サーバに16GBのRAMと12CPUを割り当てた2つのノードのサーバを持っています。 1.5時間以内に約2,500,000件のドキュメントを索引付けする必要があります。これは現在約4時間で実行しています。インデックス作成時間を短縮するため、以下の設定を変更しました。 1ギガバイト エラスティックサーチ速度が時間とともに低下する

  • 設定 'number_of_replicas' から 'translog.flush_threshold_size' を増やす

    • 設定 'なし'
    • 'REFRESH_INTERVAL' に設定する '-1'
    • に 'indices.store.throttle.type' VMオプション-Xms8g -Xmx8g(RAMサイズの半分)
    を設定する指標
  • ために8つの破片を使用して '0'
  • へ3210

    私はJavaアプリケーションで文書を生成するためにバルクプロセッサを使用していますが、以下の構成を使用してバルクプロセッサを設定しています。

    一括操作数:MBで10000
    バルクサイズ:100
    同時要求:100
    フラッシュ間隔:30

    当初、私は最初の分で356167の周りにインデックスすることができます。しかし時間とともに、それは約1時間後に1分あたり約121280の文書を減少させ、その後に減少させる。

    時間の経過とともにインデックス率を一定に保つにはどうすればよいですか?パフォーマンスを改善する他の方法はありますか?

  • 答えて

    0

    は、私は非常にあなたが何をしているか知っている(これは

    試してみてください:-)インターネット上でいくつかのブログの記事を読んで意味するものではありませんしない限り、トランスログフラッシュサイズ、スロットリングのような設定パラメータを変更しない奨励しますサーバーごとに1つのシャードを作成し、特にバルクサイズを10MBなどに縮小します。 100MB * 100の同時リクエストでは、(何もしないで)それらに対処するために10GBのヒープが必要です。私はあなたのスレッドプールのあなたの拒否されたタスクのために、ドキュメントのすべてがインデックスに登録されるとは限りません。

    大規模に開始するのではなく、小さくして大きくすることはできますが、インデックス作成の洞察はありません。

    +0

    こんにちは@alr、ありがとうございました。私はあなたの意見に同意します。実際、私はシャードとデフォルトの設定で始めました。上記の設定を使用することで、時間を大幅に短縮することができました。さらに、以前にカスタムIDを使用した自動生成IDを使用することで、時間を大幅に短縮できました。私は上記の設定で何回もインデックスをテストしましたが、EsRejectedExecutionExceptionを取得しませんでした。それで、すべてのオブジェクトがインデックスに登録されているわけではありませんか?ありがとうございました。 –

    関連する問題