【问题标题】:Increase throughput of my Rabbitmq by overcoming "Throughput and CPU utilization may worsen" warning通过克服“吞吐量和 CPU 利用率可能恶化”警告来提高我的 Rabbitmq 的吞吐量
【发布时间】:2016-01-01 11:59:01
【问题描述】:

我已经在 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。

谢谢,

【问题讨论】:

    标签: rabbitmq rabbitmq-exchange


    【解决方案1】:

    内核轮询是Linux、大多数BSD、Solaris等多个Unix内核提供的功能。它是一个类似于select(2)和poll(2)的API,用于监控文件描述符。 Erlang 可以利用这个特性。

    在那些 Unix 上,RabbitMQ 在启用此功能的情况下启动 Erlang VM,因此您根本不应该收到此警告。

    但是,Microsoft Windows 不提供这样的 API,我想您在这个平台上运行 RabbitMQ。在这种情况下,您可以忽略此警告,Erlang 仍然高效。

    仅供参考,我 filed an issue 所以我们不会在 Windows 上记录此警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多