Rendimiento
Los despliegues de IBM Cloud® Databases for PostgreSQL se pueden escalar manualmente a su uso, o se pueden configurar en autoescalado bajo determinadas condiciones de los recursos. Hay algunos factores que debes tener en cuenta al ajustar el rendimiento de tu implementación.
Supervisión del despliegue
Los despliegues de Databases for PostgreSQL ofrecen una integración con el servicio IBM Cloud® Monitoring para permitir la supervisión básica del uso de recursos del despliegue. Se presentan muchas de las métricas disponibles, como el uso de disco y el IOPS, para ayudarle a configurar el autoescalado en su despliegue. La observación de tendencias en el uso y la configuración del escalado automático para darles respuesta puede ayudar a aliviar los problemas de rendimiento antes de que las bases de datos queden inestables debido al agotamiento de recursos.
IOPS de disco
El número de operaciones de entrada/salida por segundo (IOPS) está limitado por el tipo de volumen de almacenamiento. Los volúmenes de almacenamiento para los despliegues de Databases for PostgreSQL se suministran en volúmenes de Block Storage Endurance con el nivel de 10 IOPS por GB. Si la carga operativa se satura o supera el límite de IOPS, las solicitudes y las operaciones de base de datos se retrasan hasta que el disco recupere el retraso. Largos periodos de sobrecarga pueden hacer que el despliegue no sea capaz de procesar las consultas y que no esté disponible en la práctica. Si experimenta respuestas retardadas y operaciones anómalas, es posible que esté excediendo el límite de IOPS del disco. Puede aumentar el número de IOPS disponible en el despliegue aumentando el espacio de disco.
Recomendamos al menos 100 GB de disco (1.000 IOPS) para entornos de producción.
Uso de memoria
Los valores de memoria del despliegue de Databases for PostgreSQL se ajustan automáticamente en función de la memoria total del despliegue. Concretamente, work_mem,
maintenance_work_mem y effective_cache_size se establecen en provisión, restauración o escala.
Puede establecer la cantidad de memoria dedicada al grupo de búferes compartidos de la base de datos ajustando el shared_buffers en su PostgreSQL configuración. El valor recomendado es el 25% de la memoria total del despliegue. Asignar demasiada memoria
al grupo de búferes compartidos puede agotar la memoria del sistema para otros fines y obstaculizar el rendimiento, o incluso inutilizar la base de datos.
La asignación de mayor cantidad de memoria (fuera de la agrupación de almacenamiento intermedio compartido) al despliegue sigue mejorando el rendimiento. Por ejemplo, PostgreSQL llena la memoria con páginas de disco en memoria caché para mejorar el rendimiento. No es necesario asignar memoria a PostgreSQL directamente para que PostgreSQL lo utilice.
límites de conexiones
Databases for PostgreSQL establece el número máximo de conexiones a la base de datos PostgreSQL en 115. Se reservan 15 conexiones para que el superusuario mantenga el estado y la integridad de la base de datos, y hay 100 conexiones disponibles para usted y sus aplicaciones. Una vez alcanzado el límite de conexión, cualquier intento de iniciar una nueva conexión da como resultado un error. Para evitar saturar despliegue con conexiones, utilice agrupación de conexiones o reduzca el despliegue y aumente el límite de conexiones. Para obtener más información, consulte la página Gestión de conexiones de PostgreSQL.
Databases for PostgreSQL establece el número máximo de conexiones a la base de datos PostgreSQL en 115. Se reservan 15 conexiones para que el superusuario mantenga el estado y la integridad de la base de datos, y hay 100 conexiones disponibles para usted y sus aplicaciones. Una vez alcanzado el límite de conexión, cualquier intento de iniciar una nueva conexión da como resultado un error. Para evitar saturar despliegue con conexiones, utilice agrupación de conexiones o reduzca el despliegue y aumente el límite de conexiones. Para obtener más información, consulte Administración de PostgreSQL conexiones.
Solución de problemas de rendimiento
Para obtener ayuda sobre cómo comprender los problemas de rendimiento en PostgreSQL y cómo solucionarlos, consulte Solución de problemas PostgreSQL de rendimiento.