[rabbitmq-discuss] erlang client API: transactions

Valentino Volonghi dialtone at gmail.com
Tue Sep 23 23:29:20 BST 2008

Hash: SHA1

On Sep 23, 2008, at 2:56 PM, Edwin Fine wrote:

> IIRC, the persister is writing to an mnesia database. When you start  
> Rabbit, it defines where the mnesia database is. If you put the  
> database on its own disk or even better on its own controller and  
> disk, it may increase throughput dramatically. Also, is the web  
> server, and maybe even shovel, logging lots of status messages to  
> disk? If it is, the combined I/O could strain your I/O subsystem and  
> create timeouts. If this is the case, perhaps you could reduce the  
> logging level.

I'm not sure that rabbit is writing to mnesia for logs.

table_definitions() ->
     [{user, [{disc_copies, [node()]},
              {attributes, record_info(fields, user)}]},
      {user_vhost, [{type, bag},
                    {disc_copies, [node()]},
                    {attributes, record_info(fields, user_vhost)},
                    {index, [virtual_host]}]},
      {vhost, [{disc_copies, [node()]},
               {attributes, record_info(fields, vhost)}]},
      {rabbit_config, [{disc_copies, [node()]}]},
      {listener, [{type, bag},
                  {attributes, record_info(fields, listener)}]},
      {binding, [{attributes, record_info(fields, binding)}]},
      {durable_exchanges, [{disc_copies, [node()]},
                           {record_name, exchange},
                           {attributes, record_info(fields,  
      {exchange, [{attributes, record_info(fields, exchange)}]},
      {durable_queues, [{disc_copies, [node()]},
                        {record_name, amqqueue},
                        {attributes, record_info(fields, amqqueue)}]},
      {amqqueue, [{attributes, record_info(fields, amqqueue)},
                  {index, [pid]}]}].

This is rabbit_mnesia.erl and I don't see a table that contains the  
messages. It seems it's
mostly used to keep durable stuff and configuration parameters for  

It's the log file itself not mnesia. My own computer runs OSX and it  
was running both ab and rabbitmq
so the disk was probably really trashed (And it's already slow enough).

How do I reduce the logging level? I don't see a lot of logging in  
rabbitmq or my webserver except after
startup so I suppose they might be logging somewhere else and in that  
case I wouldn't mind reducing it,
unless it's the persister log, in which case more is better.

> My feeling is to try to remove the cause of the timeouts rather than  
> work around them. vmstat is your friend.

Well... I'm not really working around them. It's just what I saw and I  
also saw that even in that case no line
was lost, the system then should be robust enough to restore itself  
under this circumstances, the timeout
might even come from network latency actually, so even if my disk is  
the fastest in the world I still need to
care for this other issue.

> I forget - what web server are you using? Is it Yaws?


- --
Valentino Volonghi aka Dialtone
Now running MacOS X 10.5
Home Page: http://www.twisted.it

Version: GnuPG v1.4.9 (Darwin)


More information about the rabbitmq-discuss mailing list