Recomendaciones de tamaño e implementación

En este documento se ofrecen recomendaciones sobre cargas de trabajo e implementaciones para dimensionar instancias de AlloyDB para PostgreSQL en cargas de trabajo de procesamiento de transacciones online (OLTP) y de procesamiento analítico online (OLAP).

Información general

Para ayudarte a mejorar el rendimiento de la base de datos, AlloyDB para PostgreSQL ofrece las siguientes funciones integradas:

  • Gestión automática de la memoria
  • Autovacuum adaptativo
  • Ajustes de rendimiento integrados optimizados
  • Retraso de replicación bajo
  • Mantenimiento no disruptivo con un periodo de inactividad inferior a un segundo en la instancia principal y ningún periodo de inactividad en los nodos del grupo de lectura durante las operaciones de escalado

Para optimizar el rendimiento de tu instancia de AlloyDB para PostgreSQL, debes gestionar lo siguiente:

  • Ajustar correctamente el tamaño de las instancias principales y del grupo de lectura
  • Actualizar las marcas que influyen en el rendimiento

Consideraciones sobre el tamaño

Antes de dimensionar tu instancia de AlloyDB para PostgreSQL, determina lo siguiente:

  • Tipo de carga de trabajo: OLTP, OLAP o HTAP
  • Requisitos de rendimiento: requisitos de latencia y de capacidad de procesamiento
  • Tamaño de los datos previsto: el tamaño de los datos que tienes previsto almacenar en AlloyDB para PostgreSQL y el tamaño del conjunto de datos activo.
  • Escala de la carga de trabajo: aumento o crecimiento del tamaño de los datos a lo largo del tiempo

Cargas de trabajo de procesamiento de transacciones online (OLTP)

Puedes implementar tu base de datos de AlloyDB para PostgreSQL como una instancia zonal (un solo nodo) o como una instancia de alta disponibilidad (dos nodos en cada zona). También puedes añadir instancias de grupo de lectura y un clúster secundario en otra región para cargas de trabajo distribuidas geográficamente o para la recuperación tras fallos.

AlloyDB para PostgreSQL se implementa mediante una arquitectura distribuida a nivel de nube con almacenamiento y computación desagregados. Las escrituras se confirman en cuanto los archivos de registro de escritura anticipada (WAL) se conservan en el almacenamiento regional, mientras que la materialización de bloques se descarga en el almacenamiento.

Del mismo modo, con la arquitectura de caché multinivel, los datos se colocan automáticamente entre la caché de búfer, la caché ultrarrápida y el motor de almacenamiento inteligente. Debido a esta arquitectura de caché multinivel que se usa en AlloyDB para PostgreSQL, las operaciones de entrada y salida por segundo (IOPS) no son relevantes en el contexto de AlloyDB para PostgreSQL para compararlas con otros sistemas de bases de datos.

Sin embargo, usar las transacciones por segundo (TPS) o las transacciones por minuto (TPM) puede proporcionar una comparación significativa para entender la cantidad de datos que puede gestionar AlloyDB para PostgreSQL.

La métrica de dimensionamiento principal es TPS. Para estimar el tamaño necesario de AlloyDB para PostgreSQL, sigue estos pasos:

  1. Identifica tu carga de trabajo actual. Si vas a migrar desde tu instancia de PostgreSQL autogestionada o desde otras bases de datos comerciales, es posible que ya tengas el valor de TPS de tu carga de trabajo.
  2. Analiza tus consultas. Identifica las consultas más importantes de tu carga de trabajo y determina sus requisitos de rendimiento.
  3. Usa una herramienta como HammerDB o pgbench. Estas herramientas ayudan a comparar AlloyDB para PostgreSQL y a determinar si el tamaño de la máquina cumple tus requisitos de TPS.
  4. Consulta la guía de comparativas de transacciones (OLTP) de AlloyDB para PostgreSQL. En esta guía se proporcionan datos de rendimiento de varias configuraciones de AlloyDB para PostgreSQL para ayudarte a encontrar una configuración que cumpla tus requisitos de TPS.
  5. Elige un tamaño adecuado para AlloyDB para PostgreSQL. Ten en cuenta el tamaño actual de tus datos y las expectativas de crecimiento futuras.

Directrices sobre el tamaño de la máquina

En la siguiente tabla de ejemplo se muestran recomendaciones para datos con una prueba de rendimiento de TPC-C que tiene una proporción de lectura y escritura de aproximadamente el 65% de lecturas y el 35% de escrituras. Cuando dimensionas una instancia de AlloyDB para PostgreSQL, debes procurar que el uso de la CPU en estado estable sea de entre el 60 y el 70% para evitar la sobrecarga de programación del sistema operativo. Esto permite un margen para los picos de uso de recursos por parte de las aplicaciones cliente.

vCPU/Memoria Intervalo de transacciones/segundo recomendado
(30% en caché)
Tamaño de los datos de trabajo recomendado (hasta 128 TB en total)
max_connections recomendado
2 / 16 GB Hasta 1000 Hasta 100 GB 1000
4 / 32 GB Hasta 2500 Hasta 250 GB 2000
8/ 64 GB Hasta 4000 Hasta 500 GB 4000
16 o 128 GB Hasta 8000 Hasta 1 TB 5000
32 / 256 GB Hasta 14.000 Hasta 3 TB 5000
64 o 512 GB Hasta 20.000 Hasta 8 TB 5000
96 / 768 GB Hasta 25.000 Hasta 16 TB 5000
128 GB u 864 GB Superior a 20.000 Hasta 32 TB 5000

Tipos de implementación

En función de tu carga de trabajo, puedes implementar AlloyDB para PostgreSQL como instancia principal únicamente o como instancia principal con una instancia de grupo de lectura.

Solo principal

Elige la opción de implementación solo principal para las siguientes cargas de trabajo:

  • Con mucho texto y lecturas de dificultad baja o media
  • Consultas con muchas lecturas y pocas escrituras
  • Lectura y escritura de OLTP típicas (entre un 60 y un 70% de lecturas y entre un 30 y un 40% de escrituras).

Para obtener más información sobre los tipos de máquinas, consulta las directrices generales sobre el tamaño de las máquinas.

Principal con instancia de grupo de lectura

Si decides implementar una instancia principal con un grupo de lectura, ten en cuenta lo siguiente:

  • Si tienes lecturas sensibles a la latencia, considera la posibilidad de derivar tus consultas de lectura a instancias del grupo de lectura. Puedes configurar hasta 20 nodos en todas las instancias del grupo de lectura. Para obtener más información, consulta Crear una instancia de grupo de lectura.
  • Configura varias instancias de grupo de lectura si tienes más de una base de datos (por ejemplo, CRM o Finanzas) en la misma instancia. Usar esta estrategia ayuda a mejorar el rendimiento de las consultas y el almacenamiento en caché.
  • Puedes asignar un tamaño diferente a las instancias principales y del grupo de lectura en función de tus requisitos. Para obtener más información sobre las prácticas recomendadas para las instancias de grupo de lectura, consulta el artículo Prácticas recomendadas para mejorar el rendimiento y la disponibilidad de AlloyDB.
  • Añade más de un nodo por instancia de grupo de lectura para lograr una alta disponibilidad.
  • Habilita el motor de columnas de forma selectiva en instancias de grupo de lectura específicas para mejorar el rendimiento de las consultas de lectura. Para ello, no es necesario habilitar el motor columnar en la instancia principal.

Puedes usar funciones integradas, como el asesor de indexación, para añadir índices que mejoren el rendimiento de las consultas.

Cargas de trabajo de procesamiento analítico online (OLAP)

En el caso de las cargas de trabajo de OLAP, la métrica de dimensionamiento principal es el rendimiento de las consultas, especialmente las que requieren búsquedas en la tabla completa o agregaciones. AlloyDB para PostgreSQL incluye un motor en columnas integrado que ayuda a acelerar las consultas analíticas. Si habilitas el motor columnar de forma predeterminada, se consumirá el 30% de la memoria y se usarán automáticamente los datos de la caché ultrarrápida.

Para obtener más información sobre cómo medir el rendimiento de OLAP con AlloyDB para PostgreSQL mediante la carga de trabajo de TPC-H, consulta la guía de comparativas de OLAP de AlloyDB para PostgreSQL.

Tipos de implementación

En función de tu carga de trabajo, puedes implementar AlloyDB para PostgreSQL como instancia principal únicamente o como instancia principal con una instancia de grupo de lectura.

Solo principal

Si implementas una instancia solo principal, ten en cuenta lo siguiente:

  • Usa esta implementación para las transacciones con consultas analíticas (HTAP).
  • Habilita el motor de columnas para facilitar las consultas OLAP.
  • Implementa una máquina con 16 vCPUs o más que proporcione más memoria para almacenar datos en columnas.

Principal con grupo de lectura

Si implementas una instancia principal con un grupo de lectura, ten en cuenta lo siguiente:

  • Si tienes muchas escrituras y lecturas analíticas sensibles a la latencia con requisitos de latencia bajos, implementa la instancia principal con la alta disponibilidad habilitada y con instancias de grupo de lectura.
  • Habilita el motor de columnas en las instancias del grupo de lectura en las que ejecutes tus consultas analíticas.
  • Configura varias instancias de grupo de lectura si tienes más de una base de datos (por ejemplo, CRM o Finanzas) en la misma instancia. Usar esta estrategia ayuda a mejorar el rendimiento de las consultas y el almacenamiento en caché.
  • Puedes asignar un tamaño diferente a las instancias principales y del grupo de lectura en función de tus requisitos. Para obtener más información sobre las prácticas recomendadas para las instancias de grupo de lectura, consulta el artículo Prácticas recomendadas para mejorar el rendimiento y la disponibilidad de AlloyDB.
  • Añade más de un nodo por instancia de grupo de lectura para lograr una alta disponibilidad.
  • Habilita el motor de columnas de forma selectiva en instancias de grupo de lectura específicas para mejorar el rendimiento de las consultas de lectura. Para ello, no es necesario habilitar el motor columnar en la instancia principal.

Siguientes pasos