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



我正在通过发送查询对弹性搜索进行压力测试,但我担心响应正在缓存。如何在测试弹性搜索时关闭缓存?

在我回答之前,我要声明我同意这个问题的评论,禁用缓存不是对Elasticsearch进行压力测试的最佳方法。同时使用代表您的生产查询集的并发查询以及活动索引来访问它,将是查看ES在负载下如何响应的更好方法。

然而,为了回答你的问题并指出一些注意事项:

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

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

    https://www.elastic.co/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. 您可以更改字段数据缓存的设置不知道如果你把这个设置为0会发生什么:

    https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-fielddata.html

  4. 总的来说,请记住Elasticsearch很重要本机操作系统文件系统缓存的使用,所以很多"缓存"是发生在ES控制之外:

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

GET /my_index/_search?request_cache=false
https://www.elastic.co/guide/en/elasticsearch/reference/current/shard-request-cache.html

最新更新