4

我有两台运行 JGroups 的机器。我面临的问题是,一旦在其中一台机器上创建了一个实例,几秒钟后我就会启动其他实例。它们都分别启动(相同的集群),即它们不一起加入集群。10 到 15 秒后,他们双方交流并加入。

这种延迟导致代码中我的业务出现问题...启动程序时还引发了警告

警告:socket java.net.MulticastSocket@5954864a 的发送缓冲区设置为 640KB,但操作系统只分配了 135.17KB。这可能会导致性能问题。请在操作系统中正确设置您的最大发送缓冲区(例如 Linux 上的 net.core.wmem_max)

这和问题有关系吗?

4

3 回答 3

3

您绝对需要增加这些值——否则 UNCAST 几乎无法使用。

如果您不熟悉如何执行此操作,请修改 /etc/sysctl.conf 文件。这些是我在节点上的值。

JGroups UDP 配置

net.core.rmem_max = 25480000

net.core.wmem_max = 25480000

要重新加载这些值,请以 root 身份发出“sysctl -p”以强制重新加载此文件。

资料来源:http ://comments.gmane.org/gmane.comp.java.javagroups.general/7922

于 2016-04-06T12:16:43.627 回答
1

警告与您的问题无关,这只会导致性能问题,因为操作系统缓冲区对于您的多播缓冲区来说太小了。

关于您的问题:检查您的日志中的所有 jgroups 消息(不仅是警告)并检查它们的时间。并发布您的集群配置。

于 2011-10-17T11:09:21.583 回答
1

通过更改此值 (net.core.wmem_max) 编辑 /etc/sysctl.conf 并运行“sysctl -p”

于 2012-05-29T12:29:08.100 回答