疲劳是最舒适的枕头,努力工作吧。

es5.2.2 client node问题。

Elasticsearch | 作者 famoss | 发布于2017年03月24日 | 阅读数:4432

想尝试下从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也有大小,多了直接返回失败。
已邀请:

medcl - 今晚打老虎。

赞同来自:

还有没有更多信息补充说明一下呢。
升级前后各种相关配置都哪些调整?还是一样。
网卡流量监控看看?
 

kennywu76 - Wood

赞同来自:

如果集群配置没什么问题,可能遇到了我们之前升级遇到过的问题,参考 http://elasticsearch.cn/article/120  。 如medcl收缩说的,需要看一下网卡流量是否跑满了,如果确认是网卡流量瓶颈,可以尝试一下启用client node 的tcp compression看能否缓解。

要回复问题请先登录注册