gpt4 book ai didi

ruby-on-rails - 对于 database.yml 中的池大小,我应该考虑什么?

转载 作者:太空狗 更新时间:2023-10-30 01:47:42 31 4
gpt4 key购买 nike

我一直在思考如何设置合适的池大小(在 database.yml 中)。

我在 what is the use of the pool option in database.yml 看到了类似的问题但需要进一步了解这一点。

这是我的设置。我有运行带有 5 个工作进程的 Unicorn 的实例。我还有并发设置为 5 的 Sidekiq 实例(我假设那是 5 个并发线程)。

对于池大小,我应该考虑什么?我还应该考虑哪些其他因素?

这是我目前的理解(引用我之前采访过的一位工程师的话):

Suppose you leave it at the default 5. It just means that, inside "a single process", the pool size is 5. The pool is per process. It is not system-wide so having a value of 5 does not mean that you are limited to 5 processes it just means that each process has its own pool, of size 5.

总而言之,每个实例的数据库池大小为 5。这也意味着数据库池大小设置不是应用程序范围的,而是每个进程/实例的。这也意味着,因为 Sidekiq 和 Unicorn 将在自己的实例中运行。它自己的数据库池大小为 5。这个假设是否正确?

此时,我可以假设默认池大小 5 通常是安全的。你的想法?

附言。如果您可以共享 AWS RDS 实例的池大小。那将不胜感激。

最佳答案

database.yml 中的池大小不应小于 sidekiq/unicorn 进程的最大数量(不是总和)。例如,如果 unicorn 以 5 个进程运行并且 sidekiq 以 15 个并发开始,则您应该设置 15 个池大小。或者,如果 unicorn 为 7,sidekiq 为 5,则 database.yml 中需要 7 个连接。

关于ruby-on-rails - 对于 database.yml 中的池大小,我应该考虑什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21469297/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com