shared_buffers - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

shared_buffers

El shared_buffers parámetro controla la cantidad de memoria que utiliza PostgreSQL para almacenar en caché los datos en la memoria. Establecer este parámetro en un valor adecuado puede ayudar a mejorar el rendimiento de las consultas.

En Amazon RDS, el valor predeterminado de shared_buffers se establece en {DBInstanceClassMemory/32768} bytes, en función de la memoria disponible para la instancia de base de datos. Para Aurora, el valor predeterminado se establece en{DBInstanceClassMemory/12038,-50003}, en función de la memoria disponible para la instancia de base de datos. El valor óptimo para este parámetro depende de varios factores, como el tamaño de la base de datos, el número de conexiones simultáneas y la memoria disponible de la instancia.

AWS CLI sintaxis

El siguiente comando cambia shared_buffers para un grupo de parámetros de base de datos específico. Este cambio se aplica a todas las instancias o clústeres que utilizan el grupo de parámetros.

# Modify shared_buffers on a DB parameter group aws rds modify-db-parameter-group \ --db-parameter-group-name <parameter_group_name> \ --parameters "ParameterName=shared_buffers,ParameterValue=<new_value>,ApplyMethod=immediate" # Modify shared_buffers on a DB cluster parameter group aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name <parameter_group_name> \ --parameters "ParameterName=shared_buffers,ParameterValue=<new-value>,ApplyMethod=immediate"

Tipo: estático (la aplicación de los cambios requiere un reinicio)

Valor predeterminado: {DBInstanceClassMemory/32768} bytes en Amazon RDS para PostgreSQL, en Aurora compatible con {DBInstanceClassMemory/12038,-50003} PostgreSQL. En la mayoría de los casos, esta ecuación equivale aproximadamente al 25 por ciento de la memoria del sistema. Siguiendo esta guía, la shared_buffers configuración del grupo de parámetros se configura utilizando las unidades predeterminadas de PostgreSQL de búferes de 8K en lugar de bytes o kilobytes.

La configuración de los shared_buffers parámetros puede tener un impacto significativo en el rendimiento, por lo que le recomendamos que pruebe los cambios minuciosamente para asegurarse de que el valor es el adecuado para su carga de trabajo.

Ejemplo

Supongamos que tiene una aplicación de servicios financieros que ejecuta una base de datos PostgreSQL en Amazon RDS o Aurora. Esta base de datos se utiliza para almacenar los datos de las transacciones de los clientes. Tiene una gran cantidad de tablas y múltiples aplicaciones acceden a ella en una gran cantidad de servidores. El rendimiento de las consultas de la aplicación es lento y el uso de la CPU es elevado. Usted determina que ajustar el shared_buffers parámetro puede ayudar a mejorar el rendimiento.

En Amazon RDS for PostgreSQL, el shared_buffers valor predeterminado de se {DBInstanceClassMemory/32768} establece en bytes de db.r5.xlarge memoria disponible (por ejemplo, 3 GB). Para determinar el valor adecuadoshared_buffers, ejecute una serie de pruebas con valores variables deshared_buffers, empezando por el valor predeterminado de la memoria disponible y aumentando el valor gradualmente. Para cada prueba, se mide el rendimiento de la consulta y el uso de la CPU de la base de datos.

En función de los resultados de las pruebas, usted determina que si se establece el valor en 8 GB, se obtiene el mejor rendimiento general de shared_buffers las consultas y el mejor uso de la CPU para su carga de trabajo. El valor se determina mediante una combinación de pruebas y análisis de las características de la carga de trabajo, incluido el tamaño de la base de datos, el número y la complejidad de las consultas, el número de usuarios simultáneos y los recursos del sistema disponibles. Tras realizar el cambio, los sistemas de supervisión comprueban el rendimiento de la base de datos para garantizar que el nuevo valor sea adecuado para la carga de trabajo. A continuación, puede ajustar los parámetros adicionales según sea necesario para mejorar aún más el rendimiento.