2016-07-29 15 views
-1

elasticsearchでデータセットを一括インデックスするスクリプトを作成しました。ただし、異なるサーバー上の同じデータセットで同じスクリプトを実行すると、実行時間が異なることが意図されています。 SSDを搭載したサーバーでは、200万の文書は10分以内に索引付けされますが、通常のハードディスクの場合は完了までに最大1時間かかります。減速の原因を突き止めるために使用できる診断ツールはありますか?elasticsearchで低速インデックスの理由を調べる

いくつかの追加情報:

  • スクリプトのpython3のために書かれ、バルクインデキシング
  • ためelasticsearch-PYモジュールを使用している両方のサーバが同じオペレーティングシステム(Ubuntuの14.04 LTS)とのいずれかを実行し低速のハードディスクには64GBのRAMが搭載されていますが、SSD搭載のRAMにはRAMの半分があります。
+0

インデックス作成のパフォーマンスに関しては、[SSDは回転ディスクより高速です](https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-performance.html#_storage)です。 – Val

+0

しかし、その違いは非常に重要です。理由を知りたいのですが、どこから始めるのか分かりません。 – Jeffrey04

答えて

1

大量のレコードが取り込まれると、インデックスマージが実行されます。これは、基礎となるストレージの速度に大きく依存するプロセスです。 RAMはここではそれほど重要ではありません。パフォーマンスを照会したり、そこで行うことが重要な場合があります。ディスクの待ち時間が増え、SSDプラットフォームに比べて速度が遅くなります。

したがって、私はSSDの高速化について驚くことはありません。 SSDストレージはHDDに比べて3〜8倍高速です。 HDDがストレージのさまざまな部分へのアクセスのために位置決め操作を実行する必要があることを考慮すると、HDDの代わりにSDDを使用するだけで、ディスクバインドされたアプリケーションを10倍以上に高速化できます。

+0

TILですから、私の上司にはとても恐ろしいほど遅い理由が分かりません。 ? – Jeffrey04

+1

ハード・ナンバーが必要な場合は、 "fio"(http://git.kernel.dk/?p=fio.git)を取得し、SSDに対してHDDのベンチマークを開始することをお勧めします。 Elasticsearchで観察したインデックスのサイズの約2倍に相当する合計で複数のファイルを作成します。これにより、パフォーマンスの差異の第一印象が得られます。次に、私が書いたことについて再び考えてみましょう。 – j94305

関連する問題