[rabbitmq-discuss] Java client - 91% time spent in reading the socket?
timrobertson100 at gmail.com
Thu Aug 1 18:51:29 BST 2013
Thanks Michael for that super fast reply,
That was what I was actually questioning... across all threads, 91% of the
time is spent in the connection thread and all of it is in reading the
socket which I found somewhat suspicious, knowing how much processing needs
to happen per message. The other 9% is spent in "my code". Is it really
true that it is so time consuming for the connection thread to need 9/10ths
of the time? Also - I'm only seeing 400msg/s (even when I comment out all
my code) from a durable persistent queue with ACK, lending more weight to
my suspicions that something is not quite right here (I have basic QoS at
100msg and a single thread+channel here).
You still think this is correct behavior?
On Thu, Aug 1, 2013 at 5:02 PM, Michael Klishin <mklishin at gopivotal.com>wrote:
> Tim Robertson:
> > Does this look suspicious to anyone? Can anyone shed any light on how
> one might improve this?
> Java client uses a separate thread for network activity (called "main
> loop"), one per connection.
> So in that thread, 100% of time is spent reading from the socket. When a
> delivery arrives,
> it is dispatched to a work pool (every channel has its own, AFAIR).
> If you profile all methods, it's certainly very likely that
> com.rabbitmq.client.impl.AMQConnection$MainLoop.run will be at the top of
> the overall table.
> You can try excluding certain classes/methods/threads from the profiler.
> That will
> give you a more informative insight.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss