GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo calcular max_connections para PostgreSQL y default_pool_size para pgbouncer?

Primero, lea nuestra pregunta canónica sobre planificación de la capacidad.

En segundo lugar, estás viendo esto mal.
La cantidad de memoria (o cualquier otro recurso) que tenga no dicta la cantidad de conexiones que establezca, la cantidad de conexiones que necesita dicta qué tan robusto debe comprar un servidor.
Los requisitos de recursos por conexión se brindan en el manual con considerable detalle, y también se analizan en el Wiki al que se vinculó. Averigüe qué necesita su entorno (o haga una suposición fundamentada) y asegúrese de que el hardware en el que se va a ejecutar pueda manejar lo que le va a lanzar.

Específicamente en relación con los límites de conexión y el tamaño del grupo, debe tener "suficientes" conexiones para cumplir con los requisitos de su aplicación, ya sea en un solo servidor o a través de un grupo/rebotador.

"Suficiente" es un número relativo:una aplicación que realiza (y reutiliza continuamente) una conexión solo requiere una conexión. Una aplicación que establece una conexión para cada usuario final que inicia sesión requiere tantas conexiones de base de datos como usuarios.

Los valores predeterminados para Postgres y pgbouncer son sensatos como predeterminados :

  • 100 conexiones de base de datos es mucho para la persona típica que lanza Postgres a un entorno.
    Los desarrolladores probablemente no necesitarán más de 10. Cualquier otra persona sabrá lo suficiente como para aumentar el número.

  • 20 conexiones de pgbouncer por grupo de base de datos significa que puede obtener 4 grupos que apuntan a un servidor y no abrumar el límite de conexión predeterminado de Postgres.
    Es posible tener múltiples recursos agrupados en pgbouncer apuntando a una base de datos de back-end, y siempre querrá algunas conexiones disponibles en sus servidores de back-end.

Si los predeterminados no son adecuados para su entorno, se espera que los cambie.

Recuerde que las conexiones agrupadas no significan "siempre vincular todas las conexiones de bases de datos disponibles".
El punto de pgbouncer como anotaste es para reutilizar conexiones La ganancia de eficiencia aquí no requiere que ate todas las conexiones disponibles, simplemente que no desconecte, vuelva a conectar, renegociar SSL, volver a autenticarse en la base de datos y volver a ejecutar sus consultas de configuración de conexión cada vez.


Linux
  1. Cómo uso Ansible y Anacron para la automatización

  2. ¿Cómo buscar archivos por tamaño y extensión?

  3. Cómo configurar conexiones remotas y seguras para MySQL en Ubuntu 16.04

  4. Cómo hacer una copia de seguridad y restaurar la base de datos en PostgreSQL

  5. Habilitar SSL y conexiones remotas para MySQL

Cómo hacer una copia de seguridad y restaurar la tarjeta SD para Raspberry Pi

Cómo instalar y usar XRDP en Ubuntu para conexión de escritorio remoto

Cómo agregar Icinga Director para Icinga2 e Icinga Web 2.

Cómo instalar la base de datos PostgreSQL y pgAdmin en Linux

Cómo comenzar e instalar Wine para Ubuntu

Cómo instalar y configurar el subsistema de Windows para Linux