加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 我应该在database.yml中考虑我的池大小?

发布时间:2020-12-16 19:07:11 所属栏目:百科 来源:网络整理
导读:我一直在考虑设置适当的池大小(在 database.yml中). 我在what is the use of the pool option in database.yml看到了类似的问题,但需要进一步了解这一点. 这是我的设置.我有运行Unicorn的实例有5个工作进程’.我也有Sidekiq实例,并发设置为5(我正在为5个并发
我一直在考虑设置适当的池大小(在 database.yml中).

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

这是我的设置.我有运行Unicorn的实例有5个工作进程’.我也有Sidekiq实例,并发设置为5(我正在为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将在自己的实例中运行.它将拥有自己的db池大小为5.这个假设是正确的吗?

此时,我可以假设默认池大小为5通常是安全的.你的意见?

PS.如果您可以共享AWS RDS实例的池大小.那将是值得赞赏的.

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读