用了Elasticsearch,一口气上5T

ElasticSearch查询非常缓慢

Elasticsearch | 作者 styshoo | 发布于2020年04月13日 | 阅读数:4924

初来乍到,想请教下ES的配置推荐,现在在一个测试环境,只保存3天的日志,大概3亿条数据,查询时非常缓慢。
我的配置大概是这样的,容器化部署ES。
1. 2个data节点容器各自10G内存,其中每个data节点的jvm分了5G,剩下了5G给Lucene。data节点使用普通硬盘,并且每个节点占用空间200G左右。
2. 3个master节点各自4G内存,jvm占用2G。
3. 2个client节点,各自2G内存。
现在只是普通的查询所有的数据,在kibana上查询最近3天的数据,不添加其他任何搜索搜索条件, 每次查询都要耗时2分钟所有。
 
请问,这种情况下的数据,应该怎么样的配置更合理,另外ES方面还有没有其他优化的点。
 
另外,再附上索引的mapping,因为是对接的日志文件,又是多种类型的日志文件,比如Kubernetes日志,docker日志,普通文件的日志,所以字段较多。
经常搜索的字段,也就是message字段。不过kibana上超时的搜索,未填写任何搜索字段,仅搜索了最近3天数据,搜索也特别耗时,有时甚至会超时。
已邀请:

zhuhaidong - Elasticsearch as log service.

赞同来自: styshoo

1. Kubernetes日志,docker日志,普通文件的日志——这些日志应该放在不同的索引里,这样每次查询就只要查询对应的索引就可以了,缩小搜索范围;
2. 分片数控制在每个分片20GB以下;
3. 默认的mapping是text+keyword,手动在index_template里配合适的mapping会好很多。
4. 感觉内存给的太小了。
 
可以参照官方文档 Tune for search speed
 

loredp

赞同来自:

把具体mapping拿出来看看,要不然分析不了啥。。。

要回复问题请先登录注册