[openstack-dev] [oslo][messaging] Further improvements and refactoring
Gordon Sim
gsim at redhat.com
Wed Jul 2 13:54:19 UTC 2014
On 07/01/2014 03:52 PM, Ihar Hrachyshka wrote:
> On 01/07/14 15:55, Alexei Kornienko wrote:
>>> And in addition I've provided some links to existing
>>> implementation with places that IMHO cause bottlenecks. From my
>>> point of view that code is doing obviously stupid things (like
>>> closing/opening sockets for each message sent).
>
> That indeed sounds bad.
>
>>> That is enough for me to rewrite it even without additional
>>> proofs that it's wrong.
>
> [Full disclosure: I'm not as involved into oslo.messaging internals as
> you probably are, so I may speak out dumb things.]
>
> I wonder whether there are easier ways to fix that particular issue
> without rewriting everything from scratch. Like, provide a pool of
> connections and make send() functions use it instead of creating new
> connections (?)
I did a little investigation, using the test scripts from Alexei.
Looking at the protocol trace with wireshark, you can certainly see lots
of redundant stuff. However I did *not* see connections being opened and
closed.
What I did see was the AMQP (0-9-1) channel being opened and closed, and
the exchange being declared for every published message. Both these
actions are synchronous. This clearly impacts throughput and, in my view
more importantly, will limit scalability by giving the broker redundant
work.
However, I think this could be avoided (at least to the extreme extent
it occurs at present) by a simple patch. I posted this up to gerrit in
case anyone is interested: https://review.openstack.org/#/c/104194/
With this in place the ingress improves significantly[1]. The bottleneck
then appears to be the acking of messages. This means the queue depth
tends to get higher than before, and the traffic appears more 'bursty'.
Each message is acked individually, whereas some degree of batching
might be possible which would likely improve the efficiency there a
little bit.
Anyway, just an observation I thought it would be interesting to share.
--Gordon.
[1] From less than 400 msgs/sec to well over 1000 msgs/sec on my laptop
More information about the OpenStack-dev
mailing list