[rabbitmq-discuss] Questions about limit alarm and report in the log file

Matthew Sackman matthew at rabbitmq.com
Mon Mar 12 16:00:33 GMT 2012


Hi,

On Mon, Mar 12, 2012 at 03:14:02PM +0000, Rosa, Andrea (HP Cloud Services) wrote:
> 1 this line is reported in the log files when we are close to the file handles or memory limit?: 
> =INFO REPORT==== 
> Limiting to approx 3996 file handles (3594 sockets)
> 
> =INFO REPORT====
> Memory limit set to 38749MB.

These are added to the log on startup so that you can be sure that any
configuration changes you've made have taken affect.

> 2 why there is this difference between the file handles and the number of sockets?

Rabbit will always need some file handles. It's quite smart about
sharing file handles internally between the various different processes
that need to work with files, but it will always need some. Thus we
ensure that not all file descriptors can be used for sockets - we
reserve some just for files.

> 3 the following entries mean that we hit the limit for file_descriptor? Why we have a set and a clear?
> =INFO REPORT==== 
>     alarm_handler: {set,{file_descriptor_limit,[]}}
> 
> =INFO REPORT==== 
>     alarm_handler: {clear,file_descriptor_limit} 

"Set" means you've hit the limit. "Clear" means you're no longer at the
limit - either some connections have closed or Rabbit's internally
managed to free up some descriptors so that it's no longer at the limit.

It is, however, a slightly imprecise measure. We can't control the use
of FDs by the Erlang VM itself, and some plugins don't make use of the
correct API to ensure we account correctly for FD usage.


Matthew


More information about the rabbitmq-discuss mailing list