To expand a bit on what Michael said:
If you are publishing a message, then waiting for confirmation before
you publish the next message, you will get bad performance. Network
latency will quite possibly dominate, and even if it doesn't then the
persister will not perform as well as you might hope.
Why? Because queues attempt to write to disk in batches - essentially
they accept messages as they come in, then write out a batch whenever
they go idle, or after 200ms. And they only issue confirmations for
persistent messages after they have been written to disk. So in the
worst case (where the queue is servicing other requests and never goes
idle) you can wait 200ms for each confirm. Even if the queue is doing
nothing else it still has to go idle.
So one-publish-one-confirm is a performance antipattern. Much better to
accept confirms as they come in, or if you can't do that, at least
publish a batch of messages then wait for confirms for all of them
before continuing.
Also: which version are you running? 3.5.0 has a faster persister, as
well as more diagnostic information on how the persister is doing, see
http://www.rabbitmq.com/persistence-conf.html
Cheers, Simon
On 30/03/15 17:31, Phill Tomlinson wrote:
> I'm using full acknowledgements on a per message basis, therefore you
> are correct it is slower than using something like publisher confirms
> for example.
>
> I'm using JMeter to test messages going in.
>
> My laptop has an SSD, however like I say in Openstack Kafka was much
> quicker and I was using full synchronized blocking calls between each
> message being confirmed.
>
> I have heard of an known issue for example with MySQL when run in
> Openstack where the disk writes do not perform that well. I wondered if
> this was a similar issue.
>
> On Monday, 30 March 2015 17:22:13 UTC+1, Michael Klishin wrote:
>
> On 30 March 2015 at 19:18:05, Phill Tomlinson (
p.g.to...@gmail.com
> <javascript:>) wrote:
> > RabbitMQ with no disk persistence (openstack considerably
> > quicker):
> > Laptop - 160msg/s
> > Openstack -1,000msg/s
> >
> > With disk persistence (not sure what happens here as the ratios
> > are not as expected):
> > Laptop - 100msg/s
> > Openstack - 65msg/s
> >
> > So there is a large discrepancy.
>
> Those are very low numbers regardless of whether you publish
> messages as persistent.
>
> How are you measuring this, do you use our PerfTest tool? Something
> else?
>
> Does your laptop have an SSD? What about your OpenStack node?
> --
> MK
>
> Staff Software Engineer, Pivotal/RabbitMQ
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "rabbitmq-users" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
rabbitmq-user...@googlegroups.com
> <mailto:
rabbitmq-user...@googlegroups.com>.
> To post to this group, send email to
rabbitm...@googlegroups.com
> <mailto:
rabbitm...@googlegroups.com>.
> For more options, visit
https://groups.google.com/d/optout.