Thank you for your help.

This virtual

пн, 14 апр. 2025 г. в 20:56, Justin Bertram <jbert...@apache.org>:

> Thanks for the thread dumps!
>
> I see that in all the "after_logon" thread dumps there is a thread like
> this working:
>
> "qtp368040556-79" #79 prio=5 os_prio=0 cpu=3462.39ms elapsed=236.30s
> tid=0x00007fd5253a96b0 nid=0x281 waiting on condition  [0x00007fd4a68ef000]
>    java.lang.Thread.State: WAITING (parking)
>     at jdk.internal.misc.Unsafe.park(java.base@17.0.14/Native Method)
>     - parking to wait for  <0x000000008bac9248> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>     at java.util.concurrent.locks.LockSupport.park(java.base@17.0.14
> /LockSupport.java:341)
>     at
>
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.14
> /AbstractQueuedSynchronizer.java:506)
>     at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.14
> /ForkJoinPool.java:3465)
>     at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.14
> /ForkJoinPool.java:3436)
>     at
>
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.14
> /AbstractQueuedSynchronizer.java:1630)
>     at
>
> org.eclipse.jetty.util.SharedBlockingCallback$Blocker.block(SharedBlockingCallback.java:214)
>     at
> org.eclipse.jetty.ee9.nested.HttpOutput.channelWrite(HttpOutput.java:262)
>     at org.eclipse.jetty.ee9.nested.HttpOutput.write(HttpOutput.java:873)
>     at sun.nio.cs.StreamEncoder.writeBytes(java.base@17.0.14
> /StreamEncoder.java:234)
>     at sun.nio.cs.StreamEncoder.implWrite(java.base@17.0.14
> /StreamEncoder.java:304)
>     at sun.nio.cs.StreamEncoder.implWrite(java.base@17.0.14
> /StreamEncoder.java:282)
>     at sun.nio.cs.StreamEncoder.write(java.base@17.0.14
> /StreamEncoder.java:132)
>     - locked <0x00000000b69ce908> (a java.io.OutputStreamWriter)
>     at java.io.OutputStreamWriter.write(java.base@17.0.14
> /OutputStreamWriter.java:205)
>     at java.io.BufferedWriter.flushBuffer(java.base@17.0.14
> /BufferedWriter.java:120)
>     - locked <0x00000000b69ce908> (a java.io.OutputStreamWriter)
>     at java.io.BufferedWriter.write(java.base@17.0.14
> /BufferedWriter.java:233)
>     - locked <0x00000000b69ce908> (a java.io.OutputStreamWriter)
>     at java.io.Writer.write(java.base@17.0.14/Writer.java:249)
>     at org.jolokia.json.JSONWriter.escape(JSONWriter.java:210)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:116)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:41)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:121)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:41)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:121)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:41)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:121)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:41)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:121)
>     at org.jolokia.json.JSONWriter.serialize(JSONWriter.java:79)
>     at org.jolokia.json.JSONArray.writeJSONString(JSONArray.java:53)
>     at
> org.jolokia.server.core.util.IoUtil.streamResponseAndClose(IoUtil.java:37)
>     at
>
> org.jolokia.server.core.http.AgentServlet.sendStreamingResponse(AgentServlet.java:557)
>     at
>
> org.jolokia.server.core.http.AgentServlet.sendResponse(AgentServlet.java:545)
>     at
> org.jolokia.server.core.http.AgentServlet.handle(AgentServlet.java:355)
>     at
> org.jolokia.server.core.http.AgentServlet.doPost(AgentServlet.java:294)
>     ...
>
> This is a Jetty thread servicing an HTTP request from the web console via
> Jolokia. It is serializing MBean data into JSON and sending it back to the
> web console for display. It's not clear if this is CPU bound or IO bound.
> However, given that you say the CPU was at 100% for just "2-3 seconds" but
> the page still took 140 seconds to render, my guess is that this is IO
> bound by something in your environment, probably due to the VM.
>
> That said, the previous console worked in essentially the same way so I'm
> puzzled about why there's a discrepancy in the behavior of 2.39.0 and
> 2.40.0 for this same use-case. Can you confirm that you see no (or
> comparatively little) delay for this same use-case when using 2.39.0? Also,
> could you enable the debugging console in your browser and watch the
> network traffic when you log in to see how large the responses are from
> Jolokia?
>
> In the not-to-distant future we hope to mitigate large JSON payloads for
> all use-cases using a new MBeanInfo cache feature from Jolokia [1].
>
>
> Justin
>
> [1]
> https://jolokia.org/reference/html/manual/extensions.html#_mbeaninfo_cache
>
> On Mon, Apr 14, 2025 at 12:44 AM Alexander Milovidov <milovid...@gmail.com
> >
> wrote:
>
> > I have reproduced this issue in a fresh Artemis installation.
> > First I created a local Artemis instance on my laptop, created 3000
> > queues, and it performed perfectly without any issues.
> > Then I created a virtual server in a Proxmox VE (it runs on a
> > desktop-grade hardware). The virtual machine was configured with 1 CPU
> and
> > 4 Gb RAM, OS is Debian 12. Java heap settings are default (Xms512m,
> Xmx2G).
> > The symptoms were similar to those I have in the work environment, except
> > the CPU was not loaded at 100% all the time (only for 2-3 seconds).
> Loading
> > of the console first page took about 140 seconds.
> >
> > I have captured some thread dumps: one before logon, several dumps during
> > loading the first page, and one after the page was loaded.
> > If attachments are not allowed here, I can upload to some file sharing
> > service.
> >
> >
> > пн, 7 апр. 2025 г. в 21:34, Justin Bertram <jbert...@apache.org>:
> >
> >> I tried to reproduce this using a fresh instance of 2.40.0 with 2,500
> >> queues defined in broker.xml (thanks to a bash script), but the console
> >> loaded in just a few seconds.
> >>
> >> I then created a fresh instance of 2.39.0 with 2,500 queues defined in
> >> broker.xml. Then I ran "artemis data exp" to export the data and then
> >> created a fresh instance of 2.40.0 and ran "artemis data imp" to import
> >> those queues. After that I opened the console and it loaded in a few
> >> seconds.
> >>
> >> Could you perhaps grab a few thread dumps from the broker when you see
> it
> >> running at 99% and share links to them?
> >>
> >> Also, are there further details you can share about your use-case? You
> >> must
> >> be doing something different in your environment to get that result than
> >> what I'm doing.
> >>
> >>
> >> Justin
> >>
> >>
> >>
> >> On Mon, Apr 7, 2025 at 10:24 AM Alexander Milovidov <
> milovid...@gmail.com
> >> >
> >> wrote:
> >>
> >> > Hi All,
> >> >
> >> > Has anyone installed ActiveMQ Artemis 2.40.0 in an environment with a
> >> > significant number of addresses and queues?
> >> > I have several problems with performance of the new Artemis console
> and
> >> > message broker. I have installed Artemis 2.40.0 and imported data
> from a
> >> > file which was exported from the test environment with approx. 2500
> >> queues.
> >> >
> >> > 1. When opening the Artemis console for the first time, it takes about
> >> > 200-250 seconds to load.
> >> > 2. When the console is loading, the server's processor is loaded at
> 99%.
> >> > After it loads, the CPU load is decreased to 3-5%.
> >> >
> >> > This virtual machine has 1 processor, 4 Gb of memory, 2 Gb java heap,
> >> and
> >> > there were no problems running Artemis 2.39.0 with the same
> >> configuration.
> >> > After increasing to 4 CPU, 8 Gb, the console is still loading 150
> >> seconds,
> >> > and 4 CPUs are loaded to 25%. Increasing the heap to 4 Gb did not
> change
> >> > anything.
> >> >
> >> > Is there any way to increase the performance of the new console?
> >> >
> >> > Another problem is that the bugfix ARTEMIS-5248 caused audit logs to
> >> grow
> >> > significantly. We are using the LDAPLogin module with Active Directory
> >> > authentication and authorization based on membership of the user. Each
> >> user
> >> > in our company's active directory domain can be a member of 100-400
> >> domain
> >> > groups, and each group is a role. The list of roles is logged in each
> >> audit
> >> > log message, and the size of each message can be significantly large
> >> (up to
> >> > 10 Kb).  Unfortunately, disabling audit logging does not affect the
> >> overall
> >> > performance of the web console.
> >> >
> >> > I will later try to reproduce this issue in a fresh installation by
> >> > creating 2500 empty queues.
> >> >
> >> > --
> >> > Regards,
> >> > Alexander
> >> >
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@activemq.apache.org
> > For additional commands, e-mail: users-h...@activemq.apache.org
> > For further information, visit: https://activemq.apache.org/contact
> >
>

Reply via email to