Estoy usando Postgres DB para mi producto. Mientras hago la inserción por lotes usando slick 3, recibo un mensaje de error:
org.postgresql.util.PSQLException: FATAL: lo siento, ya hay demasiados clientes.
Mi operación de inserción por lotes tendrá más de miles de registros. La conexión máxima para mi postgres es 100.
¿Cómo aumentar las conexiones máximas?
postgresql
Jet
fuente
fuente

Respuestas:
Solo aumentar
max_connectionses una mala idea. Necesitas aumentarshared_buffersykernel.shmmaxtambién.Consideraciones
max_connectionsdetermina el número máximo de conexiones simultáneas al servidor de la base de datos. El valor predeterminado suele ser 100 conexiones.Antes de aumentar el recuento de conexiones, es posible que deba ampliar su implementación. Pero antes de eso, debe considerar si realmente necesita un límite de conexión mayor.
Cada conexión de PostgreSQL consume RAM para administrar la conexión o el cliente que la usa. Cuantas más conexiones tenga, más RAM utilizará, que podría utilizarse para ejecutar la base de datos.
Por lo general, una aplicación bien escrita no necesita una gran cantidad de conexiones. Si tiene una aplicación que necesita una gran cantidad de conexiones, considere usar una herramienta como pg_bouncer, que puede agrupar las conexiones por usted. Como cada conexión consume RAM, debería intentar minimizar su uso.
Cómo aumentar las conexiones máximas
1. Incrementar
max_connectionyshared_buffersen
/var/lib/pgsql/{version_number}/data/postgresql.confcambio
a
El
shared_buffersparámetro de configuración determina cuánta memoria se dedica a PostgreSQL para usar para almacenar datos en caché .2. Cambie kernel.shmmax
Necesitaría aumentar el tamaño del segmento máximo del kernel para que sea un poco más grande que el
shared_buffers.En el archivo,
/etc/sysctl.confconfigure el parámetro como se muestra a continuación. Tendrá efecto cuando sepostgresqlreinicie (la siguiente línea hace que el kernel alcance el máximo96Mb)Referencias
Conexiones máximas de Postgres y búferes compartidos
Ajuste de su servidor PostgreSQL
fuente
cat /proc/sys/kernel/shmmax) antes de cambiarla. En los sistemas modernos, ya está ridículamente alto y no debe cambiarse. El mío está configurado18446744073692774399de forma predeterminada en Ubuntu 18.04.Añadiendo a la gran respuesta de Winnie,
Si alguien no puede encontrar la ubicación del archivo postgresql.conf en su configuración, siempre puede preguntar al propio postgres.
Para mí, cambiar las max_connections solo hizo el truco.
fuente
/etc/postgresql/11/main/postgresql.confcambie la variable max_connections en el archivo postgresql.conf ubicado en / var / lib / pgsql / data o / usr / local / pgsql / data /
fuente