Re: [jgroups-users] OOM issues?
Questions/problems related to using JGroups <[email protected]> Thu, 1 Nov 2018 13:19:54 +0100
| Newsgroups | gmane.comp.java.javagroups.general |
|---|---|
| Message-ID | <mailman.47787.1541074819.1387.javagroups-users@lists.sourceforge.net> |
Your stack looks ok. It's useless to speculate what the problem could be. Use jmc On 31/10/18 2:35 PM, Questions/problems related to using JGroups wrote: > Thanks for the help on this -- I know it's not a well defined question! > > On Tue, Oct 30, 2018 at 3:46 AM Questions/problems related to using > JGroups <[email protected] > <mailto:[email protected]>> wrote: > > > > You said 'a simple test of our code': does this occur with a simple > cluster of standalone JGroups nodes (e.g. Draw) too? > > > I haven't tried that, and am not sure how I'd reproduce my stack in > code with it (I haven't looked at Draw in forever). To help narrow > things down instead of jumping into looking at everything in memory, > will write a standalone app that does nothing but connect and then > 'main' exits. That's basically what my 'simple' case does, a "witness" > node in a database monitoring system, but can simplify it further in > case the problem is somewhere else in my code. I have no reason to > think there's a problem in jgroups; but wanted to ask in case anyone > on this list was seeing problems these days that they didn't use to. > > > There's no way around attaching jmc to a running node and seeing > which > class increases memory. JConsole might help, too, but jmc has more > detailed info. > > > Will look into that, thanks. I'm getting jstat info from customers, so > should get familiar with that also. > > > > > Anyway, am just curious for any stories of similar things with > recent > > JDK versions or some random thing I might have missed. Our jchannel > > stack (which I can share again) is unchanged for a while now. > > Yes, please post it. A simple misconfig (e.g. omitting STABLE) could > easily lead to this... > > > Added below, thanks. Would be great if that's the problem, since what > we're seeing is mostly with our code after we made the jgroups 3->4 > change and we could have messed it up. > > > > The only thing you may have to look into is the GC configuration, > but I > don't think this is the root cause. > > > The only param we run with is -Xmx32m, now 128m. Wondering if we > should be running with "-server" also. It's been > decade since I've > thought about that kind of thing. > > Thanks, > Bobby > > Our stack, all inline comments added for this email. Note that we do > have a custom Auth protocol here, but I'm seeing the memory rise with > a stable set of nodes -- once everyone joins I just leave it alone. > > List<Protocol> stack = new ArrayList<>(); > stack.add(new TCP() > // method below pulls address out of a Properties object > .setValue("bind_addr", > InetAddress.getByName(getBindingAddress())) > .setValue("bind_port", bindingPort) > .setValue("thread_pool_min_threads", 1) > .setValue("thread_pool_keep_alive_time", 5000) > .setValue("send_buf_size", 640000) > .setValue("sock_conn_timeout", 300) > .setValue("recv_buf_size", 5000000)); > stack.add(new TCPPING() > // method below returns List<IpAddress> from a config file > .setValue("initial_hosts", parseHostList()) > .setValue("send_cache_on_join", true) > .setValue("port_range", 0)); > stack.add(new MERGE3() > .setValue("min_interval", 10000) > .setValue("max_interval", 30000)); > stack.add(new FD_ALL() > // method below returns Integer.parseInt (for some reason) > // from Properties object > .setValue("timeout", getJGroupsTotalTimeout() * 1000L)); > stack.add(new VERIFY_SUSPECT() > .setValue("timeout", 1500)); > stack.add(new BARRIER()); > stack.add(new NAKACK2() > .setValue("use_mcast_xmit", false)); > stack.add(new UNICAST3()); > stack.add(new STABLE() > .setValue("desired_avg_gossip", 50000) > .setValue("max_bytes", 4000000)); > // method below returns an AUTH protocol, 'param' changed here is > // object that extends ReceiverAdapter implements RequestHandler > stack.add(createAuthProtocol(param)); > stack.add(new GMS() > .setValue("join_timeout", 3000)); > stack.add(new MFC() > .setValue("max_credits", 2000000) > .setValue("min_credits", 800000)); > stack.add(new FRAG2()); > stack.add(new STATE_TRANSFER()); > return new JChannel(stack); > > > > > > > > _______________________________________________ > javagroups-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/javagroups-users -- Bela Ban, JGroups lead (http://www.jgroups.org)