【问题标题】:Phusion Passenger and database poolingPhusion 乘客和数据库池
【发布时间】:2010-12-02 17:24:14
【问题描述】:

如果我的 Rails 应用程序在我的 database.yml 文件中将数据库池大小设置为 5(默认值),并且我正在使用 Phusion Passenger 运行,这是否意味着每个进程最多可以有 5 个数据库连接乘客产生,还是所有进程总共有 5 个?

【问题讨论】:

    标签: ruby-on-rails passenger


    【解决方案1】:

    池大小适用于一个 ruby​​ 进程。一些 ruby​​ 解释器可以使用线程来处理多个请求,例如 jRuby。池大小适用于该一个进程和所有线程。

    Passenger 不使用线程,而是创建新的 ruby​​ 进程。

    【讨论】:

    • 这实际上取决于乘客如何配置以生成 Rails 应用程序。默认情况下,池中的所有连接都在所有 rails 进程上共享。这意味着所有 5 个连接在所有进程之间共享。 stackoverflow.com/questions/2200586/…
    • 我无法再回复 Google 群组的 phusion 帖子了,但我在每个进程使用 1 个连接的客户中看到的一个常见问题是他们的监控工具。所以是的,一个乘客进程将只有 1 个线程并且需要 1 个与数据库池的连接,但请记住为 NewRelic 等监控工具分配一个额外的连接,因为这些监控工具将永久占用一个用于数据库监控的连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2019-09-14
    • 2011-12-09
    • 2012-04-27
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    相关资源
    最近更新 更多