【问题标题】:How can I increase erlang process for rabbitmq?如何增加rabbitmq的erlang进程?
【发布时间】:2014-07-17 05:09:12
【问题描述】:

我刚刚更改了 rabbitmq 上的 文件描述符 值,现在我也想更新 erlang 进程。 下面是一张可能有助于回答我的问题的图片

【问题讨论】:

    标签: ubuntu erlang rabbitmq


    【解决方案1】:

    根据official Erlang documentation

    你感兴趣的命令行参数是:

    +P 编号|旧版

    Sets the maximum number of simultaneously existing processes for this system if a Number is passed as value.  
    

    Number 的有效范围是 [1024-134217727]

    根据RabbitMQ documentation,有这个环境变量RABBITMQ_SERVER_START_ARGS可以在里面添加那种参数。

    编辑 打开一个 shell 提示符,试试这个:
    RABBITMQ_SERVER_START_ARGS="+P 231072" rabbitmq-server

    每当您找到满意的设置时,将这个RABBITMQ_SERVER_START_ARGS="+P 231072" 放入文件/etc/rabbitmq/rabbitmq-env.conf。如果此文件不存在,只需创建它。请注意,此文件的位置会根据您的安装而变化。如果您使用的是 tar.gz 中的 RabbitMQ,可能您必须在 $RABBITMQ_HOME/etc/rabbitmq/ 中创建此文件

    【讨论】:

    • 是的,但它告诉我们它仅用于调试目的“调用 RabbitMQ 服务器时使用的 erl 命令的标准参数。这应该仅出于调试目的而被覆盖。”
    • @Sabbir 对不起,我粘贴了错误的参数,下面的参数是正确的。我已经更新了答案。
    • @@Carlo 我不清楚,你能放一个示例配置吗?在这里?
    【解决方案2】:

    Earlang 进程与 -ulimit 成比例增加

    我是从 Ubuntu 服务器的角度给出这个答案。

    输入以下命令打开rabbitmq配置。文件

    sudo nano /etc/default/rabbitmq-server 
    

    使用 Ctrl+x 更新/添加并保存

    -ulimit 126666
    

    重启你的服务器

    rabbitmqctl stop_app && rabbitmqctl start_app
    

    【讨论】:

    • 这不是正确答案,因为它描述了更改文件描述符限制,该问题专门询问有关更改 Erlang 进程限制的问题。
    • @SeanN 确定你在说什么,erlang 进程完全取决于文件描述符/ulimit。文档中提到了这一点。因此,请完全了解所有内容,然后添加评论。事实上这个问题是我问的。谢谢。
    • 主题是“如何为rabbitmq增加erlang进程?”并且您有一个突出显示“Erlang 进程”计数器的屏幕截图。当您在 Ubuntu 中更改 ulimit 时,您会更改文件描述符的数量,而不会更改 RabbitMQ 的 Erlang 进程的数量。请参阅此处的“控制 Linux 上的系统限制”:rabbitmq.com/install-debian.html 要更改 Erlang 进程,请查看 RABBITMQ_SERVER_ERL_ARGS 环境变量和@Carlo 的答案。
    • 我会建议按照我的指示并比较之前和之后的 erlang 过程。结果会增加。所以,这不可能是解决不了问题的事情。 :-) 并根据您的参考。 rabbitmq.com/install-debian.html链接,有两种限制,软限制和硬限制。因此,在说出任何不是答案之前,请确认您理解正确。 @SeanN
    • 我尝试按照您的指示进行操作,但我不能,因为它们不起作用。您的 ulimit 行不正确,因为它显示 -ulimit 并给出错误“/etc/default/rabbitmq-server: -ulimit: not found”。无论如何,随着 ulimit 行更正,我的结果显示:无 ulimit - 文件描述符:1024,Erlang 进程:1048576 ulimit 为 16000 - 文件描述符:16000,Erlang 进程:1048576 所以正如我已经解释过两次,最后一次, ulimit 影响文件描述符而不是 Erlang 进程。
    【解决方案3】:

    这不是答案,但我想在评论中包含屏幕截图,以回应我投反对票的错误答案

    【讨论】:

    • 在此重复我的评论:我尝试按照您的指示进行操作,但我不能,因为它们不起作用。您的 ulimit 行不正确,因为它显示 -ulimit 并给出错误“/etc/default/rabbitmq-server: -ulimit: not found”。无论如何,随着 ulimit 行更正,我的结果显示:无 ulimit - 文件描述符:1024,Erlang 进程:1048576 ulimit 为 16000 - 文件描述符:16000,Erlang 进程:1048576 所以正如我已经解释过两次,最后一次, ulimit 影响文件描述符而不是 Erlang 进程。
    • 你用的是什么版本的rabbitmq?
    • Ubuntu 14.04LTS 上的 RabbitMQ 3.6.1,但我认为这不会改变您所看到的。您可以发布屏幕截图,显示您进行 ulimit 更改之前和之后的 Erlang 进程的值吗?
    • 您的屏幕截图显示了 1048576 的可用 Erlang 进程,就像我的一样 - 当您更改 ulimit 的值时它不会改变,但是您的可用文件描述符是 1025999,远高于默认值 1024 ,正如我已经多次说过的,更改 ulimit 会更改文件描述符,它不会更改 Erlang 进程。
    • 这在 3.6.0 版上对我有用。 Erlang进程基本上是在ulimit的基础上按比例增加的。那是最大值。限制一台服务器可以容纳。
    猜你喜欢
    • 2012-03-29
    • 2018-06-17
    • 2014-10-30
    • 2012-03-03
    • 2011-04-18
    • 2020-09-22
    • 2017-07-29
    • 2018-09-22
    • 2014-02-10
    相关资源
    最近更新 更多