I'm glad you got your issue sorted. I would expect setting
consumerWindowSize=0 to slow down consumer processing potentially quite a
lot depending on your use-case.

I worked on HornetQ, and I'm not sure why it behaved differently. There's
been over 10,000 commits in the code-base since then so while a lot of
things are different a lot has changed as well. At this point I'm not sure
it's worth the effort to determine why. The behavior you're seeing now is
what I would expect.


Justin

On Mon, Apr 22, 2024 at 9:02 AM <s.go...@inform-technology.de> wrote:

> Okay,
>
>
>
> I am answering my own question after some more research.
>
> The problem was the consumerWindowsSize of the client consumers. This was
> set to 0 leading to no buffering at all and a server round-trip for each
> retrieve call.
>
> After increasing window size to half a megabyte, the performance increased
> significantly and the clients were able to process fast enough.
>
>
>
> This is sort of weird as we had the exact same configuration with HornetQ
> and no performance bottleneck with the same number of consumers.
>
> Maybe someone of the old HornetQ crew has an idea why this is different. I
> know it’s a different product but many of the internals seem to be the same.
>
>
>
> Kind regards
>
>
>
> Sebastian
>
>
>
> From: s.go...@inform-technology.de <s.go...@inform-technology.de>
> Sent: Montag, 22. April 2024 08:45
> To: users@activemq.apache.org
> Subject: Performance issue with Artemis 2.28
>
>
>
> Good morning group.
>
>
>
> We encounter a performance issue with ActiveMQ Artemis. The system was
> formerly a JBoss HornetQ installation and was migrated to AciveMQ Artemis
> and with HornetQ we had no issues at all
>
>
>
> The performance issue is about a multicast address with a single queue
> that has 10 consumers all residing in the same JVM.
>
> This JVM uses a single ClientSessionFactory and each of the consuming
> worker threads has its own session.
>
> The throughput is not as we had expected it to be and somewhere around 50
> messages/second.
>
> After some profiling I found out, that most of the time the worker threads
> using that 10 consumers are standing in
> org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.receive
> (~111ms) while processing the message takes around 23ms.
>
>
>
> My question is: can we have each consumer pick one of the messages in the
> queue while some messages are already processed?
>
> or in other words: does Artemis deliver message 2 while message 1 is not
> yet acknowledged?
>
>
>
>
>
> Kind regards
>
> Sebastian Götz
>
>
>
>

Reply via email to