7

私はelasticalを使用してnode.js経由でElasticSearchに接続しています。

パフォーマンスを向上させるためにNodetimeを使用してアプリをプロファイリングする過程で、何か奇妙なことに気づきました。_bulkインデックスへのElasticSearchの「PUT」リクエストにより、「ソケットがハングアップ」することがよくあります。さらに、これらの呼び出しには膨大なCPU時間がかかります。

インデックスを作成するために、各_bulkインデックスリクエスト@ 10アイテムに上限を設定しています。ご覧のとおり、リクエストのコンテンツの長さは50Kbにも達していないため、サイズが問題になるとは考えにくいです。それでも、応答時間は60秒を超え、CPU時間は10秒以上です。うわぁ!!

ここに画像の説明を入力してください

デバッグを試みる中で、フォアグラウンドでElasticSearchの実行を開始しました。私はこの奇妙なエラーに気づきました:

    [2013-02-27 11:42:39,188][WARN ][index.gateway.s3         ] [Lady Mandarin] [network][1] failed to read commit point [commit-f34]
java.io.IOException: Failed to get [commit-f34]
    at org.elasticsearch.common.blobstore.support.AbstractBlobContainer.readBlobFully(AbstractBlobContainer.java:83)
    at org.elasticsearch.index.gateway.blobstore.BlobStoreIndexShardGateway.buildCommitPoints(BlobStoreIndexShardGateway.java:847)
    at org.elasticsearch.index.gateway.blobstore.BlobStoreIndexShardGateway.doSnapshot(BlobStoreIndexShardGateway.java:188)
    at org.elasticsearch.index.gateway.blobstore.BlobStoreIndexShardGateway.snapshot(BlobStoreIndexShardGateway.java:160)
    at org.elasticsearch.index.gateway.IndexShardGatewayService$2.snapshot(IndexShardGatewayService.java:271)
    at org.elasticsearch.index.gateway.IndexShardGatewayService$2.snapshot(IndexShardGatewayService.java:265)
    at org.elasticsearch.index.engine.robin.RobinEngine.snapshot(RobinEngine.java:1090)
    at org.elasticsearch.index.shard.service.InternalIndexShard.snapshot(InternalIndexShard.java:496)
    at org.elasticsearch.index.gateway.IndexShardGatewayService.snapshot(IndexShardGatewayService.java:265)
    at org.elasticsearch.index.gateway.IndexShardGatewayService$SnapshotRunnable.run(IndexShardGatewayService.java:366)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)

Caused by: Status Code: 404, AWS Service: Amazon S3, AWS Request ID: ..., AWS Error Code: NoSuchKey, AWS Error Message: The specified key does not exist., S3 Extended Request ID: ....
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:548)
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:288)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170)
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2632)
    at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:811)
    at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:717)
    at org.elasticsearch.cloud.aws.blobstore.AbstractS3BlobContainer$1.run(AbstractS3BlobContainer.java:73)

非推奨のゲートウェイ(S3バケットゲートウェイ)を使用していることを認識しています。ただし、データを共有する必要のある複数のサーバーがAmazon Cloudで実行されていることを考えると(キャッシュにElasticSearchを使用しています)、ElasticSearchチームがS3バケットゲートウェイの代替品をリリースするまで、代替手段はありません...

_bulk呼び出しに関するこの問題を除いて、問題は発生していません。検索などはすべて迅速かつ効果的に戻ります。

4

0 に答える 0