设置参数 `node.name` 可以自定义 Elasticsearch 节点的名字。 此条 Tips 由 medcl 贡献。

如何提高bulk写入速度

Elasticsearch | 作者 levi | 发布于2018年12月27日 | 阅读数:4679

RT,目前测试集群是5台服务器(32核E52620,128G内存,32T机械硬盘--8块4T盘),现在分的是3台独立的热节点,剩下2台部署4个冷节点 es使用的是6.3.2;写入的结构化数据,有17个字段,存储的一些网络访问日志和请求摘要信息,所有字段做keyword,摘要使用ik分词。索引分了4个分片,1个副本。目前写入速度只能到2w/s。求各位大佬如何才能提高写入速度?还应该如何优化

851777128.jpg


1834257390.jpg

 
已邀请:

MOBIN - 越努力,越幸运

赞同来自:

楼主,你图上kibana上的那些监控是插件做的还是自己设置监控参数做的?谢谢
 

bellengao - 博客: https://www.jianshu.com/u/e0088e3e2127

赞同来自:

适当增大写入buffer和bulk队列长度看看?看看bulk线程池的统计信息,调整下参数比如:
indices.memory.index_buffer_size: 15%
thread_pool.bulk.queue_size: 1024

code4j - coder github: https://github.com/rpgmakervx

赞同来自:

优化写的速度有很多点。不过也要看你高峰期时候的集群状态,系统负载
 
最直接的几个优化点:
 
1.如果是6.0以下,取消_all字段(效果很明显)
2.不需要检索的字段,设置不索引
3.不需要修改的话,写入时不设置id,让es生成(这个也比较明显)
 
至于写入队列,我觉得够用就行,1000左右就可以了,如果处理速度不够,就算调大了该堆积还是会堆积的。

要回复问题请先登录注册