novo artigo: sua aplicação pode estar travando sob carga mesmo com queries rápidas e banco saudável.
o culpado quase sempre é o pool de conexões que ninguém configurou.
cobre pool_size, max_overflow, pool_recycle, pool_pre_ping, NullPool e PgBouncer — com critérios claros para cada escolha.
https://www.riverfount.dev.br/posts/connection-pooling-sqlalchemy/

Por que a aplicação travava mesmo com queries rápidas
O profiling não encontrou nada. As queries estão com índice, rodam em menos de 5ms, e o cache eliminou as buscas repetidas. Mas sob carga — dez, vinte requisições simultâneas — a aplicação trava. Requisições acumulam na fila, o tempo de resposta explode, e o log mostra um erro que parece absurdo: TimeoutError: QueuePool limit of size 5 overflow 10 reached. O banco de dados não está sobrecarregado. As queries são rápidas. O problema está entre a aplicação e o banco — no pool de conexões que ninguém configurou.




Qiita - 人気の記事