sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo aumentar las conexiones máximas en postgres?

Simplemente aumentando max_connections es mala idea Necesitas aumentar shared_buffers y kernel.shmmax también.

Consideraciones

max_connections determina 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 número de conexiones, es posible que deba ampliar su implementación. Pero antes de eso, debería considerar si realmente necesita un mayor límite de conexión.

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 usará que podría usarse para ejecutar la base de datos.

Una aplicación bien escrita normalmente 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 conexiones por usted. Como cada conexión consume RAM, debe buscar minimizar su uso.

Cómo aumentar el número máximo de conexiones

1. Aumentar max_connection y shared_buffers

en /var/lib/pgsql/{version_number}/data/postgresql.conf

cambiar

max_connections = 100
shared_buffers = 24MB

a

max_connections = 300
shared_buffers = 80MB

Los shared_buffers parámetro de configuración determina cuánta memoria es dedicado a PostgreSQL para usar para almacenar datos en caché .

  • Si tiene un sistema con 1 GB o más de RAM, un valor inicial razonable para shared_buffers es 1/4 de la memoria de su sistema.
  • es poco probable que utilice más del 40 % de RAM para funcionar mejor que una cantidad menor (como el 25 %)
  • Tenga en cuenta que si su sistema o compilación de PostgreSQL es de 32 bits, puede que no sea práctico configurar shared_buffers por encima de 2 ~ 2,5 GB.
  • Tenga en cuenta que en Windows, los valores grandes para shared_buffers no son tan efectivos, y puede obtener mejores resultados manteniéndolos relativamente bajos y utilizando más la memoria caché del sistema operativo. En Windows, el rango útil es de 64 MB a 512 MB .

2. Cambiar kernel.shmmax

Debería aumentar el tamaño máximo del segmento del kernel para que sea ligeramente más grande que los shared_buffers .

En el archivo /etc/sysctl.conf establezca el parámetro como se muestra a continuación. Tendrá efecto cuando postgresql reinicia (La siguiente línea hace que el núcleo alcance un máximo de 96Mb )

kernel.shmmax=100663296

Referencias

Conexiones máximas de Postgres y búferes compartidos

Ajuste de su servidor PostgreSQL