1

I have applied some of the configuration on rabbitmq.config file which are as below:

{
[
   %% The following example sets TCP buffers to 192 KiB.
   %% https://www.rabbitmq.com/configure.html#configuration-file
  {rabbit, [
    %% https://www.rabbitmq.com/networking.html
  {tcp_listen_options, [
                        {backlog,   128},
                        {nodelay,   true},
                        {sndbuf,    196608},
                        {recbuf,    196608}
                       ]},
    %% RabbitMQ will block producers when free disk space drops below a certain limit. By default, its value is 50MB
    {disk_free_limit, "1GB"}]}
    ,
  %% disabling Nagle's Algorithm ("nodelay")
  {kernel,
  [ {inet_default_connect_options, [{nodelay, true}]},
    {inet_default_listen_options,  [{nodelay, true}]}
   %% {net_ticktime, 60}
  ]}
].
}

I am getting below warning message in "rabbit@nodname.log" file.

Warning Message: Kernel poll (epoll, kqueue, etc) is disabled. Throughput and CPU utilization may worsen.

Can anyone please suggest how do increase throughput of my Rabbitmq and also suggest significance of above warning message?

I am using Latest version of Rabbitmq: 3.6.0.

Thanks,

Mat
  • 202,337
  • 40
  • 393
  • 406
Jagrut Dalwadi
  • 295
  • 1
  • 4
  • 17

1 Answers1

1

Kernel polling is a feature provided by several Unix kernels such as Linux, most BSDs, Solaris, etc. It is an API similar to select(2) and poll(2) to monitor file descriptors. Erlang can take advantage of this feature.

On those Unix, RabbitMQ starts the Erlang VM with this feature enabled, so you shouldn't get this warning at all.

However, Microsoft Windows doesn't provide such an API and I suppose you run RabbitMQ on this platform. In this case, you can disregard this warning, Erlang remains efficient.

FYI, I filed an issue so we don't log this warning on Windows.