[rabbitmq-discuss] rabbitmq and long vm.dirty_writeback_centisecs
simon at rabbitmq.com
Thu Jul 4 11:15:45 BST 2013
On 04/07/13 00:45, Tao Fan wrote:
> I have ubuntu boxes which, for disk life consideration, I have set the
> vm.dirty_writeback_centisecs from 5sec to 30min. However, when the boxes
> have power outage and restored, rabbitmq refused to start up, giving
> error message in log: mnesia_recover crashed.
That's an error from Mnesia; part of Erlang. It may be worth upgrading
Erlang, R13B03 is quite old. See
https://www.erlang-solutions.com/downloads/download-erlang-otp for newer
That error is also truncated, it's not clear what has really gone wrong.
> I had to delete schema.DAT under mnesia directory before I can start it
> again but then all my stored messages in persistent queues are lost.
> If I do disk sync every minute or two, there is no such issue - rabbitmq
> can survive every power cycle. I like to understand how rabbitmq works
> to survive power cycle and if it is possible to tune it to survive with
> longer sync time without losing any stored messages in queue.
Don't these two requirements contradict each other? If you succeed in
making sync to disc happen every 30 min (which is probably quite hard,
RabbitMQ issues fsync() quite frequently), you are going to risk losing
data on failure.
To be honest I would just leave dirty_writeback_centisecs alone.
More information about the rabbitmq-discuss