Hello all. Thank you for your insights.
* I’m using the core Java library. * Consumers are being created once per poll but reused if there are multiple inbound files to deal with. I create consumers like try (final consumer = createConsumer(session, params)) { // ... } so I expect them to be closed automatically. * I don’t use JMS, but the core sessions are used one per thread. The number of sessions opened and reported by Artemis doesn’t change over time. * I cannot reproduce the issue yet. It’s a production cluster, so today I’m going to set up my own playground. Jan From: Justin Bertram<mailto:jbert...@apache.org> Sent: středa 9. srpna 2023 17:41 To: users@activemq.apache.org<mailto:users@activemq.apache.org> Subject: Re: Hunting memory leaks I echo Tim's recommendation to use the latest release, but I don't mean to say that will certainly resolve the problem. I can't say if you're doing anything wrong without more information. Can you answer the following questions? - What client library are you using? - How often are consumers being created? - Are consumers being closed properly once they are no longer needed? - Are JMS sessions being used concurrently from multiple threads? - Do you have a way to reproduce this that you can provide to me? A reproducer would make diagnosing this issue much simpler. Entries to the list of filter strings are added when a consumer is created and removed when a consumer is closed so at first glance it appears you're leaking consumers. Justin On Wed, Aug 9, 2023 at 7:07 AM Jan Šmucr <jan.sm...@aimtecglobal.com> wrote: > Hello. > I’m using a simple master-slave Artemis 2.26.0 cluster, and I’m noticing > heap usage growing more and more each day no matter the throughput. There’s > about 670 sessions at the same time opened for producers and consumers. > Consumers are polling queues on regular basis, some once a second (meaning > 1s timeout), some less often. This is by design and cannot be altered. All > client resources are being reused as much as possible. Usually there’s a > thread pool and the threads have a session opened, and wait for tasks to be > available to them. > It appears to me that the more consumers there is the faster the server > heap depletes. > Now, I’m not very familiar with leak hunting apps, so all I have are tiny > hints that it may have something to do with filter strings not being reused > and/or thrown away when not needed any more. I don’t know if I can post a > screenshot here so I uploaded it here: https://snipboard.io/LHifUK.jpg > This is from a heap dump opened in JMC JOverflow plugin. > Is there something obvious that I’m doing wrong? Do you have any clues on > what is going on here? > Thank you. > Jan. > >