es7.3生产环境问题排查解决

1、 es集群打开分片数不足
(1)错误描述:

Validation Failed: 1: this action would add [5] total shards, but this cluster currently has [998]/[1000] 
maximum shards open;

(2)解决方法:通过API设置集群分片数量,永久设置
PUT /_cluster/settings
{
" persistent ":{
“cluster”:{
“max_shards_per_node”:100000
}
}
}
2、bulk写线程池频繁出现rejected
(1)释义:
fixed:有着固定大小的线程池,由size属性指定,允许指定队列size的大小,用来保存请求,直到有一个空闲的线程来执行改请求,如果es无法把请求放到改队列中(队列已满),该请求将被拒绝。
bulk:此线程池用于批量操作,类型是fixed,size默认为cpu的数量,队列的size默认为200
(2)解决方法:
6.0以前的thread_pool.bulk.size和thread_pool.bulk.queue_size
7.0之后的thread_pool.write.size和thread_pool.write.queue_size
该值和cpu有关,如果时4核cpu该值最大可配置5
thread_pool.write.queue: 4
写线程池的队列大小,根据业务量和es的集群配置慢慢调优
thread_pool.write.queue_size: 500
3、查看集群命令。
被拒绝的请求
GET _cat/thread_pool?v
查看各线程池大小
GET _nodes/thread_pool
查看集群设置
GET _cluster/settings
4、主副分片不分配节点
问题:由于es-master节点压力大,导致出息分片UNASSIGNED状态,

business_log_755816840749221248_2020  3 p UNASSIGNED
business_log_755816840749221248_2020  3 r UNASSIGNED

(1) 主分片的手动恢复
关闭分片,重新打开,重新触发初始化

POST business_log_765120700517024256_2019/_close
POST business_log_765120700517024256_2019/_open

(2)副分片的手动恢复
修改副本的值

PUT business_log_765120700517024256_2020/_settings
{
"index":{
"number_of_replicas":0
}
}
PUT business_log_765120700517024256_2020/_settings
{
"index":{
"number_of_replicas":1
}
}

5、设置熔断比例的大小
缓存过多出现 data large
es7.3的版本

indices.fielddata.cache.size: 30%

控制有多少堆内存是分配给fielddata。当你执行一个查询需要访问新的字段值的时候,将会把值加载到内存,然后试着把它们加入到fielddata。如果结果的fielddata大小超过指定的大小 ,为了腾出空间,别的值就会被驱逐出去。默认情况下,这个参数设置的是无限制 — Elasticsearch将永远不会把数据从fielddata里替换出去。

indices.breaker.fielddata.limit: 40%

默认值是JVM堆内存的40%,注意为了让设置正常生效,一定要确保 indices.breaker.fielddata.limit 的值
#大于 indices.fielddata.cache.size 的值。否则的话,fielddata 大小一到 limit 阈值就报错,就永远到不了 size 阈值,无法触发对旧数据的交换任务了。
6、待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值