Elasticsearch之ThreadPool部分

Elasticsearch 内部使用了线程池,通过这些线程池之间的合作完成工作。一般不需要调整和优化线程池。但线程池的状态,有利于你掌握集群行为。
线程池格式:
“index”: {
“threads”: 1,
“queue”: 0,
“active”: 0,
“rejected”: 0,
“largest”: 1,
“completed”: 1
}
每个线程都列出了配置的线程数,活动的线程是正在处理事务的,在队列里多少等待处理的事务。
若队列满了,超出了限制,开始拒绝新的事务,表示集群正处在资源瓶颈,表示你的集群或者节点正在以最大的速度处理事务,但赶不上新事务增加的速度。
bulk批量索引的请求线程队列是最有可能出现拒绝请求的事情,队列的拒绝是对压力的一个有效措施,表示集群正处于最大的容量,比把数据全部塞到内存队列里要好。增大队列大小不会提升性能,它只会隐藏问题。
解决队列满了的问题是清理队列。当你遇到bulk拒绝请求时候,你应该采取如下措施:
1、停止插入线程3-5秒
2、从bluk请求里提取被拒绝的操作,可能大部分请求都成功了。bulk的响应里会告诉你哪些操作成功了,哪些操作被拒绝了。
3、把拒绝的操作重新生成一个新的bulk请求。
4、如果再有拒绝请求发生,就重复上面的步骤。
通过这种方式,你的代码会自然的适应你的集群的负载,自然的减压。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值