我在rabbitmq.config文件中应用了一些配置,如下所示:
{
[
%% 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}
]}
].
}
我在" rabbit@nodname.log"中收到以下警告信息;文件。
警告消息:禁用内核轮询(epoll,kqueue等)。吞吐量和CPU利用率可能会恶化。
任何人都可以建议如何提高我的Rabbitmq的吞吐量,并提出上述警告信息的重要性?
我使用的是最新版本的Rabbitmq:3.6.0。
谢谢,
答案 0 :(得分:1)
内核轮询是由几个Unix内核(如Linux,大多数BSD,Solaris等)提供的功能。它是一个类似于select(2)和poll(2)的API来监视文件描述符。 Erlang可以利用这个功能。
在那些Unix上,RabbitMQ在启用此功能的情况下启动Erlang VM,因此您根本不应该收到此警告。
但是,Microsoft Windows并没有提供这样的API,我想你在这个平台上运行RabbitMQ。在这种情况下,您可以忽略此警告,Erlang仍然有效。
仅供参考,我filed an issue因此我们不会在Windows上记录此警告。