gpt4 book ai didi

java - Hazelcast CP 子系统 FencedLock 内存使用情况

转载 作者:行者123 更新时间:2023-11-30 05:24:45 25 4
gpt4 key购买 nike

设置:

  • 榛子:3.12.3
  • Spring 启动:2.1.6
  • Java:1.8
  • 参数:-XX:+UseG1GC
  • Xms7g -Xmx7g 这些正在 Docker 中运行:openjdk:8
  • 它们在专用 vmware 节点 CentOS 7.5.1804 中运行

我总共有 7 个节点,组成了一个 hazelcast 集群。其中5人为CP成员。组大小设置为 3。其他值得注意的配置更改:setSessionTimeToLiveSeconds(200)、setMissingCPMemberAutoRemovalSeconds(240)。

用法:我有 8 个客户端尝试获取长 key 的隔离锁,接口(interface)缓存 5 分钟。键几乎总是不同的,但在某些情况下,我们会收到同一键的许多操作,并且我们希望避免这些键的异步更新。过去我使用 IMap 来实现此目的,但我注意到它并不总是尊重锁。在达到一定的内存使用量之前,隔离锁似乎表现得非常好。

问题:我观察到,一个 cp 成员被大量使用,并且 G1 Old Gen 堆随着时间的推移略有增加。一天之内就达到了5GB。即使在我停止锁定请求之后,内存也永远不会被清除。 enter image description here

我尝试创建两个组来利用集群中的更多节点,它确实有所帮助,但问题仍然存在,一些节点上的已用堆随着时间的推移而增加,最终变得非常慢。

问题:我究竟做错了什么?这是否是该工具的有效用例?

最佳答案

锁对象不会自行过期,并且 Hazelcast 不会自动对未使用的锁执行垃圾收集。如果您不再需要锁,可以使用lock.destroy()销毁它,否则您将面临 OOME 的风险。

关于java - Hazelcast CP 子系统 FencedLock 内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58881629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com