先に結論
Railsの中でスレッド処理をしていないのであれば
- Unicornの場合
1
- Pumaの場合
スレッドの数
なんで UnicornとPumaで数が違うの?
ざっくりいうと、Unicornはマルチプロセスで、Pumaはマルチスレッドだから (厳密には違うけど)
それで、コネクションプールはRailsのプロセスごとに持ってる
マルチプロセスのUnicornでは、1worker = 1プロセス なので、workerが消費するのは、1つのコネクションだけ。
なので、database.ymlの pool
の値は 1
が適正
それに対して、マルチスレッドのPumaでは、1つのプロセスで複数のスレッドが動作する。 そのため、スレッドの数だけコネクションが必要になる