![使用 Puma 和 NGINX 确定 Rails 最大线程数和数据库池大小](https://linux22.com/image/700039/%E4%BD%BF%E7%94%A8%20Puma%20%E5%92%8C%20NGINX%20%E7%A1%AE%E5%AE%9A%20Rails%20%E6%9C%80%E5%A4%A7%E7%BA%BF%E7%A8%8B%E6%95%B0%E5%92%8C%E6%95%B0%E6%8D%AE%E5%BA%93%E6%B1%A0%E5%A4%A7%E5%B0%8F.png)
我注意到使用 Puma 的 Rails 5 App 的默认池大小等于:
<%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
这意味着您可以将最大线程数设置为环境变量,或者它将默认为 5 个数据库连接。
我见过一些应用程序使用大约 600 作为连接池的限制,这让我认为它实际上与线程无关,但它似乎用于保持绿色性能。
确定最大线程数的逻辑是什么,它与处理器架构有关吗?
数据库连接池是否完全依赖于线程,或者在用户负载较大(约 20,000 个)时我是否能够保持一定的灵活性?