2011-12-29 60 views
7

我找不到任何描述数据库连接池效应的文档unicorn真的需要独角兽导轨的数据库连接池吗?

独角兽分叉几个工人进程。我配置了prefork,关键是不要在worker之间共享数据库连接,所以我在fork之后重新设置db连接。

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

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

回答

7

由于每个工作人员一次只能提供一个请求,每个工作人员一次只能使用一个连接,而没有更多的连接可以获得。如果将池大小设置为1,则每个独角兽工作人员应打开一个连接。您可能不会获得明显的性能提升,但您可以通过减少开放连接节省资源。