On 5 August 2014 at 21:17:32, Michael Denny (
micd...@gmail.com) wrote:
> > A bottlenecked disk could slow down publish queuing a lot on
> disk, isn't it?
For persistent messages, yes.
> Could this also slow down the consumer? or if the consumer is ready
> to consume (idle), can receive the message before is committed
> to disk?
It can slow down message delivery to consumers if said messages have to
be read from disk when the disk is overloaded.
> I'm asking this because I use the EasyNetQ RPC pattern,
> that consume to a reply queue and timeouts if no message arrive
> in 10 sec, so I'm wondering if a bottlenecked disk can slow down
> the reply process. Reply queues are transient, auto-delete
> and has exclusive owner. We reply by publish on that queue passing
> a DeliveryMode=0 so i suppose is transient by default (I've already
> asked Mike if this should be better implemented by choosing a
> default DeliveryMode of 1 or 2, not 0 that is the byte default).
There is no delivery mode = 0, only 1 (transient) and 2 (persistent).
> In general what can happen if there's a disk bottleneck?
Your entire OS can start swapping, slowing everything down (not just RabbitMQ,
every single running process). This would happen if you run out of available RAM
on the machine.
> I also see messages in unack state for long, really strange all
> this:
>
>
> all those messages are RPC style.
Heavy swapping can indeed result in such delays.
> In the meanwhile, there's any suggestion for disks? like allocation
> unit size? Should I set it to more that the default 4KB?
That won't help much if you're swapping. If you are, add RAM. If not,
but disk is really the bottleneck, either reduce disk load (e.g. by
using transient messages) or move to an SSD.