icp备案查询站长之家,潍坊网站建设费用,wordpress弹出相册,猎奇网站源码文章目录 [toc]事出有因解决思路效果展示关于重启课外扩展 事出有因 报错原因是 es 在 full GC 之前触发了默认的断路器#xff0c;导致报错 [parent] Data too large#xff0c;相似的报错内容如下#xff1a; Caused by: org.elasticsearch.common.breaker.CircuitBreakin… 文章目录 [toc]事出有因解决思路效果展示关于重启课外扩展
事出有因 报错原因是 es 在 full GC 之前触发了默认的断路器导致报错 [parent] Data too large相似的报错内容如下 Caused by: org.elasticsearch.common.breaker.CircuitBreakingException: [parent] Data too large, data for [transport_request] would be [1021339792/974mb], which is larger than the limit of [1020054732/972.7mb], real usage: [1021337736/974mb], new bytes reserved: [2056/2kb], usages [request0/0b, fielddata1730/1.6kb, in_flight_requests88822/86.7kb, accounting12643373/12mb]查看当前 es 节点的 jvm 内存使用情况ip和端口要换成自己的 es 节点 curl -s -XGET 10.190.107.78:19200/_cat/nodes?vtruehname,node*,heap* heap.current 当前使用的内存heap.percent 内存使用量百分比heap.max 内存最大值 name id node.role heap.current heap.percent heap.max
es-3 q8nd dilm 935.3mb 91 1gb
es-2 U5GI dilm 700.2mb 68 1gb
es-1 vgkL dilm 825mb 80 1gb
es-0 UH0L dilm 511.6mb 49 1gb 解决思路 如果本机内存足够并且满足官方的要求不超过本机50%的内存或者不超过32G内存那就可以直接通过配置 xmx 和 xms 来解决有两种配置方法 通过修改 jvm.options 文件内的 xmx 和 xms 来实现通过环境变量 ES_JAVA_OPTS 来实现7.x 系列是有的具体可以看 elasticsearch 文件里面的内容来确定 如果本机内存不足以调整 jvm 内存了那就需要通过调整 gc 垃圾回收来解决同样的可以通过上述两种方式来配置 ES Circuit Breaker 断路器 indices.breaker.total.use_real_memory - 默认为true 静态设置确定父断路器是否应考虑实际内存使用情况true仅考虑子断路器保留的数量false indices.breaker.total.limit - 父断路器触发上限 indices.breaker.total.use_real_memory 为 true 时默认为 jvm 堆内存的 95%indices.breaker.total.use_real_memory 为 false 时默认为 jvm 堆内存的 70% jvm 常见的垃圾收集器的组合方式 -XX:UseConcMarkSweepGC - 启用 CMS 垃圾收集器-XX:CMSInitiatingOccupancyFraction75 - 内存使用率达到 75% 的时候触发 full GC-XX:UseCMSInitiatingOccupancyOnly - 如果不指定只是用设定的回收阈值 CMSInitiatingOccupancyFraction, 则 JVM 仅在第一次使用设定值后续则自动调整会导致上面的那个参数不起作用 效果展示 我这里是通过上面三个参数来指定 CMS 作为垃圾收集器以此来解决 es 的报错问题 curl -s -XGET 10.190.107.78:19200/_cat/nodes?vtruehname,node*,heap* 可以从下面的数据看出效果也是立竿见影 name id node.role heap.current heap.percent heap.max
es-1 vgkL dilm 431.6mb 43 989.8mb
es-0 UH0L dilm 337.1mb 34 989.8mb
es-2 U5GI dilm 500.5mb 50 989.8mb
es-3 q8nd dilm 730.3mb 73 989.8mb关于重启 重启 es 集群时遵循从非 master 节点开始依次重启每一个节点起来后再重启下一个节点es 节点重启之前可以先关闭 es 自动分片分配避免多节点重启过多分片重新分配占用大量的 IO 把集群搞崩了 关闭自动分片分配 curl -XPUT 10.190.107.78:19200/_cluster/settings -H Content-Type: application/json -d
{transient: {cluster.routing.allocation.enable: none}
}开启自动分片分配 curl -XPUT 10.190.107.78:19200/_cluster/settings -H Content-Type: application/json -d
{transient: {cluster.routing.allocation.enable: all}
}课外扩展
限制内存使用