我正在通过发送查询对弹性搜索进行压力测试,但我担心响应正在缓存。如何在测试弹性搜索时关闭缓存?
在我回答之前,我要声明我同意这个问题的评论,禁用缓存不是对Elasticsearch进行压力测试的最佳方法。同时使用代表您的生产查询集的并发查询以及活动索引来访问它,将是查看ES在负载下如何响应的更好方法。
然而,为了回答你的问题并指出一些注意事项:
-
您可以在运行之间清除缓存:
清除缓存API允许清除所有缓存或特定缓存与一个或多个索引关联的缓存。
-
您可以通过设置关闭过滤器缓存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 -
您可以更改字段数据缓存的设置不知道如果你把这个设置为0会发生什么:
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-fielddata.html -
总的来说,请记住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