如何在测试弹性搜索时关闭缓存

Ale*_*lex 12 elasticsearch

我通过发送查询来压力测试弹性搜索,但我担心响应会被缓存.在测试弹性搜索时如何关闭缓存?

Joh*_*one 16

在我回答之前,我同意关于该问题的评论的免责声明,禁用缓存不是压力测试Elasticsearch的最佳方法.使用代表您的生产查询集的同时查询以及同时进行活动索引来实现它将是了解ES如何在负载下响应的更好方法.

但是,要回答您的问题并指出一些警告:

  1. 您可以在两次运行之间清除缓存:

    清除缓存API允许清除与一个或多个索引相关联的所有缓存或特定缓存.

    http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-clearcache.html

  2. 您可以通过将index.cache.filter.type设置为none来关闭过滤器缓存 - 这将阻止过滤器结果被缓存:

    http://elasticsearch-users.115913.n3.nabble.com/Disable-cache-td3825105.html

    http://elasticsearch-users.115913.n3.nabble.com/Disabling-cache-td3201850.html

  3. 您可以更改字段数据缓存的设置 - 但是我不知道如果将其设置为零会发生什么:

    http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules-fielddata.html

  4. 但总的来说,请记住,Elasticsearch大量使用本机操作系统文件系统缓存,因此大部分"缓存"都发生在ES的控制范围之外:

    https://blog.codecentric.de/en/2014/05/elasticsearch-indexing-performance-cheatsheet/