请教:一、在单机4核的机器上,bulk线程池是默认的4个,用4个进程同时bulk数据,为什么bulk线程池里queue是大于0的?
二、三台机器(4核)的集群上,是否可以同时12个进程去bulk?
三、三台机器集群,一个master两个data,bulk请求是平均发在三台机器上还是平均发在两个data上?
二、三台机器(4核)的集群上,是否可以同时12个进程去bulk?
三、三台机器集群,一个master两个data,bulk请求是平均发在三台机器上还是平均发在两个data上?
4 个回复
viewsite
赞同来自:
laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net
赞同来自:
int(( 核心数 * 3 )/ 2 )+ 1 。
同时满足:不允许bulk和’indexing’线程池的大小大于CPU内核数。
举例:24核处理器,检索服务器是24核,所以:线程池的大小=(24*3)/2+1=37,
同时要满足cpu核数为24。37和24取最小值,应该选择24。
gtexpanse
赞同来自:
hapjin
赞同来自:
2,可以。在elasticsearch.yml里面可指不同线程池的线程个数,参考:increase-thread-pool-queue-size-in-elasticsearch 和 threadpool
3,不确定。你的master节点上有data吗?还是只是将这个节点只作为 master? master节点也可以存储数据。默认情况下,一个节点既是master eligible 节点,又是data节点,又是coordinator 节点,参考:modules-node。请求的分发是基于round-robin 算法。