hazelcast 中的 hazelcast.operation.thread.count 和 hazelcast.operation.generic.thread.count 有什么区别?
What is the difference between hazelcast.operation.thread.count and hazelcast.operation.generic.thread.count in hazelcast?
我们正在尝试优化 hazelcast 的性能,我们是 运行 一个 16 节点(8 核 VM)集群,因此我们在集群中共有 4001 个分区,并且我们为每个节点配置了 50 个操作线程.我们需要改进性能,即更高的吞吐量和更短的响应时间,因此我们也在考虑配置 hazelcast.operation.generic.thread.count。
1) hazelcast.operation.generic.thread.count 和 hazelcast.operation.thread.count 有什么区别? hazelcast.operation.generic.thread 处理什么样的操作?
2) 分区数与运行线程数之比约为 5:1 ,我们打算降低这个比率,因为我们假设它会提高性能。推荐什么,在相同数量的节点中增加节点数或不运行线程数?
3) 在我们的情况下,hazelcast 节点的线性缩放保持核心数量和内存相同是否可取?
如此处所述,http://docs.hazelcast.org/docs/3.10.4/manual/html-single/index.html#partition-aware-operations、hazelcast.operation.thread.count
控制分区感知操作的线程池大小,如 imap.get/put/delete
等。如果您想要要提高这些操作的性能,您可以修改此 属性。这个 属性 的默认值是 CPU 核心的数量,在你的例子中是 8。
hazelcast.operation.generic.thread.count
控制通用操作的线程池大小。例如 iexecutor.execute
等。我相信您对提高此类操作的性能不感兴趣。
一件重要的事情是因为你有 4001 个分区,你的数据大小是多少? Hazelcast 建议一个分区应该在 50-100 MB 之间。 (请检查 https://hazelcast.com/resources/hazelcast-deployment-operations-guide/)所以在您的情况下,我预计您提供了 200-400 GB 的数据。如果没有,说明你的小分区太多了。这也会影响性能。
因为每个虚拟机上有 8 个内核。将操作线程数设置为 50 不会增加太多性能,因为集群中有 16 * 8 = 124 CPU 个核心。除非您添加更多 CPU,否则仅增加线程数不会提高性能,至少在某些时候是这样。因此,您应该向集群添加更多节点或增加每个 VM 的 CPU 计数。这将极大地影响性能。
我们正在尝试优化 hazelcast 的性能,我们是 运行 一个 16 节点(8 核 VM)集群,因此我们在集群中共有 4001 个分区,并且我们为每个节点配置了 50 个操作线程.我们需要改进性能,即更高的吞吐量和更短的响应时间,因此我们也在考虑配置 hazelcast.operation.generic.thread.count。
1) hazelcast.operation.generic.thread.count 和 hazelcast.operation.thread.count 有什么区别? hazelcast.operation.generic.thread 处理什么样的操作?
2) 分区数与运行线程数之比约为 5:1 ,我们打算降低这个比率,因为我们假设它会提高性能。推荐什么,在相同数量的节点中增加节点数或不运行线程数?
3) 在我们的情况下,hazelcast 节点的线性缩放保持核心数量和内存相同是否可取?
如此处所述,http://docs.hazelcast.org/docs/3.10.4/manual/html-single/index.html#partition-aware-operations、
hazelcast.operation.thread.count
控制分区感知操作的线程池大小,如imap.get/put/delete
等。如果您想要要提高这些操作的性能,您可以修改此 属性。这个 属性 的默认值是 CPU 核心的数量,在你的例子中是 8。hazelcast.operation.generic.thread.count
控制通用操作的线程池大小。例如iexecutor.execute
等。我相信您对提高此类操作的性能不感兴趣。一件重要的事情是因为你有 4001 个分区,你的数据大小是多少? Hazelcast 建议一个分区应该在 50-100 MB 之间。 (请检查 https://hazelcast.com/resources/hazelcast-deployment-operations-guide/)所以在您的情况下,我预计您提供了 200-400 GB 的数据。如果没有,说明你的小分区太多了。这也会影响性能。
因为每个虚拟机上有 8 个内核。将操作线程数设置为 50 不会增加太多性能,因为集群中有 16 * 8 = 124 CPU 个核心。除非您添加更多 CPU,否则仅增加线程数不会提高性能,至少在某些时候是这样。因此,您应该向集群添加更多节点或增加每个 VM 的 CPU 计数。这将极大地影响性能。