Yeah, parallel is still the default one even in Java 8, as far as I know.
So the CMS concerns sound like a non-issue.

On Tue, Dec 23, 2014 at 4:15 PM, Kevin Burton <bur...@spinn3r.com> wrote:

> The default GC which I think is still parallel.  But I should explicitly
> set it.  I’m working on getting JMX monitors up so that I can track
> ActiveMQ counters but also GC state.
>
> I can’t get a reliable and short term failure to occur so right now I’ve
> focused on mitigating the issue and easily rebuilding my queue when it
> crashes.
>
> On Tue, Dec 23, 2014 at 8:55 AM, Tim Bain <tb...@alumni.duke.edu> wrote:
>
> > BTW, you never did answer the question about which GC strategy you're
> > using, and it occurred to me that if you're using CMS, lots of full GCs
> > that don't actually reclaim much memory after a long time being up is the
> > classic failure scenario for CMS.  It happens when Old Gen gets
> fragmented,
> > which in turn happens because CMS is a non-compacting GC strategy in Old
> > Gen.  If you're using CMS and seeing continual full GCs, you should look
> at
> > whether G1 GC would be better for your needs.
> >
> > On Mon, Dec 22, 2014 at 11:03 PM, Kevin Burton <bur...@spinn3r.com>
> wrote:
> >
> > > Great feedback.  Thanks btw. I’m working on getting up better JMX
> > monitors
> > > so I can track memory here more aggressively.  Bumping up memory by
> 1.5G
> > > temporarily fixed the problem. However, it seems correlated to the
> number
> > > of connections.  So I suspect I’ll just hit this again in the next few
> > > weeks.
> > >
> > > By that time I plan to have better JMX monitors in place to resolve
> this.
> > >
> > > On Sat, Dec 20, 2014 at 10:28 PM, Tim Bain <tb...@alumni.duke.edu>
> > wrote:
> > > >
> > > > What JVM are you using, and what GC strategy with which options?  And
> > for
> > > > that matter, what broker version?
> > > >
> > > > With Hotspot 7u21 and G1GC while running a long-running performance
> > > stress
> > > > test I've observed that Old Gen use increases over time (despite the
> > fact
> > > > that G1GC is supposed to collect Old Gen during its normal collection
> > > > operations), and GCs against Old Gen happen semi-continually after
> Old
> > > Gen
> > > > hits a certain memory threshold.  However, unlike what you're
> > observing,
> > > 1)
> > > > the GCs I saw were Old Gen GCs but not full GCs (G1 allows GCing Old
> > Gen
> > > > during incremental GCs), 2) the broker remains responsive with
> > reasonable
> > > > pause times close to my target, and 3) once Old Gen hits the 90%
> > > threshold
> > > > that forces a full GC, that full GC is able to successfully collect
> > > nearly
> > > > all of the Old Gen memory.  My conclusion from that was that although
> > > > objects were being promoted to Old Gen (and I tried unsuccessfully to
> > > > prevent that from occurring, see
> > > >
> > > >
> > >
> >
> http://activemq.2283324.n4.nabble.com/Potential-Bug-in-Master-Slave-with-Replicated-LevelDB-Store-td4686450.html
> > > > ),
> > > > nearly all of them were unreachable by the time a full GC actually
> > > > occurred.
> > > >
> > > > So if you're seeing continual full GCs (not just Old Gen GCs if
> you're
> > > > using G1) that don't actually free any Old Gen memory, then what
> you're
> > > > seeing different behavior than I saw, and it means that the objects
> in
> > > Old
> > > > Gen are still reachable.  One possible reason for that would be
> > messages
> > > > still being held in destinations waiting to be consumed; look for
> > queues
> > > > without consumers (especially DLQs), as well as durable subscribers
> > that
> > > > are offline.  If you're certain that's not the case, maybe you can
> post
> > > > some of the results of analyzing the heap snapshot so that people who
> > > know
> > > > the codebase better could see if anything jumps out?
> > > >
> > > > On Sat, Dec 20, 2014 at 1:51 PM, Kevin Burton <bur...@spinn3r.com>
> > > wrote:
> > > >
> > > > > I’m trying to diagnose a long term memory leak with ActiveMQ.
> > > > >
> > > > > Basically , my app runs fine for about a week or so, then goes to
> > 100%
> > > > CPU
> > > > > doing continually full GCs back to back.
> > > > >
> > > > > No work is done during that period.
> > > > >
> > > > > I have a large number of sessions to the AMQ box, but things are
> fine
> > > on
> > > > > startup.
> > > > >
> > > > > It’s entirely possible that y app isn’t releasing resources, but
> I”m
> > > > trying
> > > > > to figure out the best way to track that down.
> > > > >
> > > > > I’m using org.apache.activemq.UseDedicatedTaskRunner=false so that
> > > thread
> > > > > pools are used.  Which apparently can cause a bit of wasted memory.
> > > > >
> > > > > I have a heap snapshot.  I loaded that into the Eclipse Memory
> > Analyzer
> > > > and
> > > > > didn’t see any obvious candidates but of course I’m not an expert
> on
> > > the
> > > > > ActiveMQ code base.
> > > > >
> > > > > Are there any solid JMX counters I can track during this process?
> > > Number
> > > > > of sessions? etc.
> > > > >
> > > > > --
> > > > >
> > > > > Founder/CEO Spinn3r.com
> > > > > Location: *San Francisco, CA*
> > > > > blog: http://burtonator.wordpress.com
> > > > > … or check out my Google+ profile
> > > > > <https://plus.google.com/102718274791889610666/posts>
> > > > > <http://spinn3r.com>
> > > > >
> > > >
> > >
> > >
> > > --
> > >
> > > Founder/CEO Spinn3r.com
> > > Location: *San Francisco, CA*
> > > blog: http://burtonator.wordpress.com
> > > … or check out my Google+ profile
> > > <https://plus.google.com/102718274791889610666/posts>
> > > <http://spinn3r.com>
> > >
> >
>
>
>
> --
>
> Founder/CEO Spinn3r.com
> Location: *San Francisco, CA*
> blog: http://burtonator.wordpress.com
> … or check out my Google+ profile
> <https://plus.google.com/102718274791889610666/posts>
> <http://spinn3r.com>
>

Reply via email to