Eu tive os mesmos problemas causados por muitas conexões abertas com o banco de dados. Isso pode acontecer quando você tem consultas de banco de dados fora de um controlador (em um modelo, mailer, gerador de pdf, ...).
Eu poderia corrigi-lo envolvendo essas consultas neste bloco que fecha a conexão automaticamente.
ActiveRecord::Base.connection_pool.with_connection do
# your code
end
Como o Puma funciona em vários segmentos, o tamanho do pool (como eabraham mencionou) também pode ser uma limitação. Tente aumentar (um pouco)...
Eu espero que isso ajude!