mysql - unicorn rails 真的需要一个数据库连接池吗?

标签 mysql ruby-on-rails connection-pooling unicorn

我找不到任何描述 unicorn 的数据库连接池效果的文档.

Unicorn forks 几个工作进程。我配置了 prefork,不要在 worker 之间共享数据库连接是很重要的,所以我在 fork 之后重置了数据库连接。

我的 Rails 应用程序每个服务器有 8 个工作人员,database.yml 中的池大小为 5,然后我看到 45 个到 mysql 的连接。

每个工作线程都是单线程的,一次处理 1 个请求。 SQL 查询应该是阻塞的。似乎其他 4 个连接没有用?我可以将池大小设置为 1 以获得更好的性能吗?

最佳答案

由于每个 worker 一次只能处理 1 个请求,因此每个 worker 一次也只能使用一个连接,拥有更多连接没有任何好处。如果将池大小设置为 1,则每个 Unicorn worker 应该打开一个连接。您可能不会获得明显的性能提升,但可以通过减少打开的连接来节省资源。

关于mysql - unicorn rails 真的需要一个数据库连接池吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663529/

相关文章:

Mysql 查询选项表

mysql - 如何查询非重复行但保留主键

mysql - 游标的不一致行为

java - 在jboss 7中为Activemq配置池连接jndi

c# - npgsql 泄漏 Postgres 数据库连接 : Way to monitor connections?

mysql - mysql自动递增触发器

ruby-on-rails - 在Heroku上使用s3存储选项时访问回形针临时文件

ruby-on-rails - wicked_pdf 没有在 rails 中的本地和亚马逊 aws 中渲染图像?

javascript - Rails 3.1 - ActionView::Template::Error(未找到 :application 的扩展):- 未找到 :application 的扩展

performance - PooledCloseableHttpClient 影响性能吞吐量