如何优化es集群,提高写入性能

Elasticsearch | 作者 maxxx | 发布于2019年08月15日 | 阅读数:364

目前es集群主要用于 日志存储查询。
 
版本:
es  -2.3.5
logstash -2.3.4
 
5台 8核32G 4*5T普通磁盘,  将每天的日志按天生成的一个索引, /_cat/indices查看每天的索引大概有250G,5个分片 0副本,  每个实例jvm: -Xms20g -Xmx20g
5个实例皆为数据节点,都可以为master。
 
日志数据主要是来自logstash消费kafka中的日志,grok解析后插入es, 低峰期日志能够实时插入及查询,  高峰期延迟严重, kafka分区的Lag(未消费的消息)很多。
考虑过将5个实例中的2个实例不作为data node, 只是作为master负载使用,没试验过不知道效果如何?
 
io:
111.png

 
其他性能指标如何查看?
 
 
有什么方法可以提高集群的写入?
 
 
 
已邀请:

rochy - rochy_he@tw

赞同来自:

楼主可以按照 Kibana 这样就有可视化的索引写入速度曲线
目前楼主需要分析到,是 LogStash 慢还是 ES 写入速度慢(查看写入曲线即可),然后针对性解决问题
如果 LogStash 慢可以通过多启动即可 LogStash 实例即可轻松解决
ES 慢的话,先看一下 translog、refresh_time、merge、字段 Mapping 等是否设置的合理;
此外楼主上述的数据 250G 一共 5 个分片,可以考虑设置 10 个分片,理论上写入速度会更好一些
 

Reilee - 在日devops

赞同来自:

个人建议:
  1. 换 SSD,如果预算不够的话,起码换一个 node,然后把这个 node 作为写入 node
  2. 升级 elastic stack,比起 v2 新版本还是有很多性能提升的
  3. 独立 master node 是好的,但是不要设置偶数 master 以防止脑裂

 
另外不知道楼主的高峰期有多大流量
elasticsearch output 的配置也可能影响写入性能

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

除了楼上二楼的维度分析,
1、版本2.3,看能否升级;
2.如果不能升级,考虑优化:机器内容和堆内存设置关系,建议Min(机器内存/2, 31GB);
3.安全起见,建议至少加一个副本,写入前副本数置为0,写入完毕后再设置新的副本数(根据业务需要);
4.修改refresh_interval值,默认1s比较快,为提升效率,可以改为30s。
5.其他通用的写入优化如楼上提及。

要回复问题请先登录注册