我正在使用SessionStore将我的jruby Rails会话存储在postgres数据库中。连接池配置为:
pool: 10
timeout: 5000
在我的测试中,我发现有大约15个连接,我开始收到以下错误:
ActiveRecord::ConnectionTimeoutError (could not obtain a database connection within 5 seconds. The max pool size is currently 10; consider increasing it.)
这似乎太早失败了。当然,10个DB连接可以支持超过15个并发用户?我只使用此数据库来访问会话,因此我假设每个请求仅在一小段时间内使用该连接。这些失败是在合理的时间发生的吗?
Rails如何使用数据库连接进行会话存储?它是否在请求的长度内保持数据库连接,还是只在每个请求开始时加载一次?关于什么可能导致这种糟糕的数据库连接使用的任何想法?