想尝试下从2.4升级到5.2.2
数据量大概10w/s,1T数据/h.
在2.4的时候使用5个client node节点,每个10GB heap完全能满足要求。
现在使用5个client node,每个31GB,还一直在做full gc,几乎两秒一次full gc。导致写入能力根本上不去。
用jmap dump下来内存,发现80%左右内存都被用在了byte,基本都是写入的数据,
那请问,情况像是后端消费来不及,且不停的在写入,导致了client node数据积压,然后一直full gc。
用·/_cat/thread_pool/bulk·看写入队列active是个位数,queue全为0.且当时没有查询。。
我现在做了流量镜像,2.4跟5.2的数据一模一样,且也有相同配置的各6台相同配置的服务器。
2.4一点压力没有,但是5.2就一直在full gc 然后 oom。
node.attr.host: es162
node.attr.box_type: hot
cluster.routing.allocation.awareness.attributes: host
node.master: false
node.data: false
node.name: es162.client
network.host: [_local_,_site_]
discovery.zen.ping.unicast.hosts: ["xxx"]
indices.queries.cache.size: 50%
indices.fielddata.cache.size: 20%
thread_pool.bulk.queue_size: 1000
没有什么特殊的配置。网卡流量大概还是维持在单host 200M/s 左右,我是client node跟data node混在一个host上部署的。
但我比较奇怪,后端datanode队列都是空的,应该还没到瓶颈。感觉还是生产大于消费,dump下来看过了,80%的内存都耗在byte[]数组(消息内容)。扩充client node应该能缓解问题。
再请问,client node有自我保护的机制么,单纯做转发,如果消费小于生产,而client node一直在等返回肯定会oom。比如queue也有大小,多了直接返回失败。
数据量大概10w/s,1T数据/h.
在2.4的时候使用5个client node节点,每个10GB heap完全能满足要求。
现在使用5个client node,每个31GB,还一直在做full gc,几乎两秒一次full gc。导致写入能力根本上不去。
用jmap dump下来内存,发现80%左右内存都被用在了byte,基本都是写入的数据,
那请问,情况像是后端消费来不及,且不停的在写入,导致了client node数据积压,然后一直full gc。
用·/_cat/thread_pool/bulk·看写入队列active是个位数,queue全为0.且当时没有查询。。
我现在做了流量镜像,2.4跟5.2的数据一模一样,且也有相同配置的各6台相同配置的服务器。
2.4一点压力没有,但是5.2就一直在full gc 然后 oom。
node.attr.host: es162
node.attr.box_type: hot
cluster.routing.allocation.awareness.attributes: host
node.master: false
node.data: false
node.name: es162.client
network.host: [_local_,_site_]
discovery.zen.ping.unicast.hosts: ["xxx"]
indices.queries.cache.size: 50%
indices.fielddata.cache.size: 20%
thread_pool.bulk.queue_size: 1000
没有什么特殊的配置。网卡流量大概还是维持在单host 200M/s 左右,我是client node跟data node混在一个host上部署的。
但我比较奇怪,后端datanode队列都是空的,应该还没到瓶颈。感觉还是生产大于消费,dump下来看过了,80%的内存都耗在byte[]数组(消息内容)。扩充client node应该能缓解问题。
再请问,client node有自我保护的机制么,单纯做转发,如果消费小于生产,而client node一直在等返回肯定会oom。比如queue也有大小,多了直接返回失败。
2 个回复
medcl - 今晚打老虎。
赞同来自:
升级前后各种相关配置都哪些调整?还是一样。
网卡流量监控看看?
kennywu76 - Wood
赞同来自: