Unicorn Rails 是否真的需要一个数据库连接池?

8
我找不到任何关于unicorn数据库连接池效果的文档。
Unicorn分叉出多个工作进程。我配置了prefork,重要的是不要在工作进程之间共享数据库连接,所以我在fork之后重置了db连接。
我的rails应用程序每个服务器有8个工作进程,在database.yml中的池大小为5,然后我看到了45个连接到mysql。
每个工作进程都是单线程处理1个请求。SQL查询应该是阻塞的。其他4个连接似乎没有用?我能将池大小设置为1以获得更好的性能吗?
1个回答

8

由于每个工作进程一次只能服务一个请求,因此每个工作进程也只能同时使用一个连接,拥有更多的连接并不能获得任何好处。如果将连接池大小设置为1,则每个独角兽工作进程应该打开一个连接。您可能不会获得明显的性能提升,但通过减少打开的连接数,可以节省资源。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接