gpt4 book ai didi

hazelcast - 减少 Hazelcast 线程的数量

转载 作者:行者123 更新时间:2023-12-02 03:30:14 28 4
gpt4 key购买 nike

出于测试目的,我想在单个节点上运行多个 Hazelcast 实例。 Hazelcast 假定它正在管理整个节点,因此它创建了足够多的线程来完全(实际上是过度)加载所有内核。在我的 8 核 Linux 节点上,Hazelcast 每个实例创建 74 个线程,这很快就会达到用户线程限制。 (是的,我知道这可以用 ulimit 改变。)

来自 jconsole线程 View :

  • hz.hzInstance_1_dev.scheduled
  • hz.hzInstance_1_dev.generic-operation.thread (x16)
  • hz.hzInstance_1_dev.partition-operation.thread (x16)
  • hz.hzInstance_1_dev.response
  • hz.hzInstance_1_dev.event (x5)
  • hz.hzInstance_1_dev.等待通知
  • hz.hzInstance_1_dev.wan (x16)
  • hz.hzInstance_1_dev.cached.thread
  • hz.hzInstance_1_dev.migration
  • hz.hzInstance_1_dev.IO 线程输入 (x3)
  • hz.hzInstance_1_dev.IO-thread-out (x3)
  • hz.hzInstance_1_dev.IO-thread-Acceptor
  • hz.hzInstance_1_dev.cached-thread (x8)
  • hz.hzInstance_1_dev.HealthMonitor

可以通过设置 Hazelcast system properties 来减少一些线程数:

  • generic-operation.thread = hazelcast.operation.generic.thread.count
  • partition-operation.thread = hazelcast.operation.thread.count
  • IO-thread = hazelcast.io.thread.count
  • event = hazelcast.event.thread.count

wan、通用操作和分区操作线程的默认数量都是 2 x CPU 核心数。似乎没有任何方法可以减少 wan 线程的数量。

有没有办法指定 Hazelcast 应该使用多少核,而不是分别指定 generic-operation.threadpartition-operation.thread?设置 CPU 亲和性不起作用,因为 Hazelcast 仍然认为它可以访问所有内核。

有什么方法可以改变 WAN 复制线程的数量吗?

最佳答案

默认情况下,对于 Hazelcast 3.4,分区操作线程数将为 1x 核心数。

除了这些属性之外,没有其他选项可以配置操作线程数。

据我所知,不可能更改 wan 复制线程的数量,因为它被硬编码为:ExecutorConfig.DEFAULT_POOL_SIZE。

一个什么都不做的线程,它很便宜。操作系统调度程序不调度它;只需要跟踪数据。

关于hazelcast - 减少 Hazelcast 线程的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27407370/

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