如何在ElasticSearch中提高_reindex效率

时间:2019-10-31 16:52:06

标签: elasticsearch

在我看来,ElasticSearch实例中有大量文档,确切地说是1321587763。在创建集合之前,我无法设置正确的索引,因此我将它们重新索引为索引设置为

的新集合data_
PUT /data_
{
  "settings": {
    "index": {
      "number_of_shards": "2",
      "number_of_replicas": "1",
      "analysis": {
        "analyzer": {
          "lsh": {
            "type": "custom",
            "tokenizer": "whitespace"
          }
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "arrayinstance": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "bearing": {
        "type": "long"
      },
      "hashstring": {
        "type": "text",
        "analyzer": "lsh"
      },
      "sample": {
        "type": "float"
      },
      "sampleindex": {
        "type": "long"
      }
    }
  }
}

根据建议,我将设置设置为

PUT /portland_/_settings
{
    "index" : {
        "refresh_interval" : -1,
        "number_of_replicas" : 0
    }
}

然后我将源数据重新索引为data_ as

POST _reindex?wait_for_completion=false&slices=4
{
  "source": {
    "index" : "sourcedata_",
    "size": 1000
  },
  "dest": {
    "index" : "data_",
    "version_type": "external",
    "op_type": "create"
  },
  "conflicts": "proceed"
}

最初,它可以相当迅速地每秒将20-50Mb的数据丢弃到data_上,但它的速度一直稳定地降低到每秒500k或更少。我受到硬件的限制,将16G的Macbook分配给ES,并将10G分配给ES,并且ES实例分布在两个USB3.0外部磁盘上,但是OS X的活动监视器未显示笔记本电脑在最大CPU使用率为400的情况下运行800%的内存中有%可用(4核超线程),并且对RAM使用没有过多压力。

我在做什么错了?

同样欢迎您提出帮助建议批评

尼克

0 个答案:

没有答案