Quantas conexões devo definir para o PostgreSQL (versão 13.x)? pelo núcleo da CPU? o tamanho da memória? qual valor devo escolher? como estimar o valor da conexão para o PostgreSQL? devo estimar assim?
(single_thread_memory) = thread_stack(256KB) + binlog_cache_size(32KB) + join_buffer_size(256KB) + sort_buffer_size(256KB) + read_buffer_size(128KB) + read_rnd_buffer_size(256KB)= 1MB
Infelizmente, não existe uma fórmula única para determinar definitivamente qual
max_connections
deve ser uma configuração. Muitos fatores provavelmente devem ser considerados.Por exemplo:
max_connections
?pgbench
e/ou com testes específicos de aplicativos, quais consultas, simultaneidades etc. revelaram limites principais, limites de E/S, limites de rede etc.!?Alternativas para
max_connections
isso podem ser de interesse:superuser_reserved_connections
para disponibilidade de conexão crítica/de alta prioridade.connection_limits
) que permitem limites de conexão por banco de dados, por usuário e por IP.Em relação ao(s) outro(s) aspecto(s) da sua pergunta, aplica-se o mesmo tipo de análise; por exemplo, quanto
work_mem
deve ser alocado com base nas consultas que estão sendo executadas. Considere ler o PostgreSQL: Administração do Servidor: Configuração do Servidor: Consumo de Recursos . Vale a pena considerar quase todas essas configurações ao ajustar um servidor PostgreSQL (assim como aquelas em PostgreSQL: Server Administration: Server Configuration .