Recomendaciones de tamaño y de implementación

En este documento, se proporcionan recomendaciones de carga de trabajo y de implementación para ajustar el tamaño de las instancias de AlloyDB para PostgreSQL en cargas de trabajo de procesamiento de transacciones en línea (OLTP) y de procesamiento analítico en línea (OLAP).

Descripción general

Para ayudarte a lograr un mejor rendimiento de la base de datos, AlloyDB para PostgreSQL proporciona las siguientes funciones integradas:

  • Administración automática de la memoria
  • Autovacuum adaptable
  • Configuración de rendimiento integrada optimizada
  • Retraso de replicación bajo
  • Mantenimiento no disruptivo con un tiempo de inactividad inferior a un segundo para la instancia principal y sin tiempo de inactividad para los nodos del grupo de lectura durante las operaciones de escalamiento

El ajuste de tu instancia de AlloyDB para PostgreSQL para mejorar el rendimiento incluye la administración de lo siguiente:

  • Ajusta el tamaño de tus instancias principales y de grupo de lectura correctamente
  • Actualización de marcas que afectan el rendimiento

Consideraciones sobre el tamaño

Antes de determinar el tamaño de 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 capacidad de procesamiento
  • Tamaño de datos esperado: Es el tamaño de los datos que planeas almacenar en AlloyDB para PostgreSQL y el tamaño del conjunto de datos activo.
  • Escala de tu carga de trabajo: Un aumento o crecimiento en el tamaño de los datos con el tiempo

Cargas de trabajo 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). De forma opcional, también puedes agregar instancias de grupos de lectura y un clúster secundario en otra región para cargas de trabajo distribuidas geográficamente o para la recuperación ante desastres (DR).

AlloyDB para PostgreSQL se implementa con una arquitectura distribuida a gran escala en la nube con procesamiento y almacenamiento disgregados. Las operaciones de escritura se confirman en cuanto los archivos de registros de escritura anticipada (WAL) se conservan en el almacenamiento regional, mientras que la materialización de bloques se transfiere al almacenamiento.

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

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

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

  1. Identifica tu carga de trabajo existente. Si migras desde tu PostgreSQL autoadministrado o desde otras bases de datos comerciales, es posible que ya tengas el valor de TPS para tu carga de trabajo existente.
  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 determinar si el tamaño de la máquina satisface tus requisitos de TPS.
  4. Usa la Guía de comparativas de OLTP de AlloyDB para PostgreSQL. En esta guía, se proporcionan datos de rendimiento de varias configuraciones de AlloyDB para PostgreSQL para encontrar una que cumpla con tus requisitos de TPS.
  5. Elige un tamaño adecuado de AlloyDB para PostgreSQL. Ten en cuenta el tamaño de tus datos actuales y las expectativas de crecimiento futuras.

Lineamientos de tamaño de la máquina

En la siguiente tabla de ejemplo, se muestran las recomendaciones para los datos con comparativas de TPC-C que tienen una proporción de operaciones de lectura y escritura de aproximadamente un 65% de operaciones de lectura y un 35% de operaciones de escritura. Cuando definas el tamaño de una instancia de AlloyDB para PostgreSQL, debes intentar tener un uso de CPU en estado estable de alrededor del 60% al 70% para evitar la sobrecarga de programación del sistema operativo. Esto permite un margen para los aumentos repentinos en el uso de recursos por parte de las aplicaciones cliente.

vCPU/Mem Rango recomendado de transacciones por segundo
(30% almacenado en caché)
Tamaño de datos de trabajo
recomendado (hasta 128 TB de tamaño total)
max_connections recomendado
2 / 16 GB Hasta 1,000 Hasta 100 GB 1000
4 GB / 32 GB Hasta 2,500 Hasta 250 GB 2000
8/ 64 GB Hasta 4,000 Hasta 500 GB 4000
16 GB / 128 GB Hasta 8,000 Hasta 1 TB 5000
32 GB / 256 GB Hasta 14,000 Hasta 3 TB 5000
64 GB / 512 GB Hasta 20,000 Hasta 8 TB 5000
96 GB / 768 GB Hasta 25,000 Hasta 16 TB 5000
128 / 864 GB Mayor que 20,000 Hasta 32 TB 5000

Tipos de Deployment

Según tu carga de trabajo, puedes implementar AlloyDB para PostgreSQL solo como instancia principal o como instancia principal con grupo de lectura.

Solo principal

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

  • Operaciones de escritura intensivas con operaciones de lectura bajas o medias
  • Consultas con muchas operaciones de lectura y pocas de escritura
  • Operaciones de lectura y escritura típicas de OLTP (entre 60 y 70% de lecturas y entre 30 y 40% de escrituras)

Para obtener más información sobre los tipos de máquinas, consulta el Lineamiento general 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 descargar tus consultas de lectura a instancias de grupo de lectura que ofrecen un retraso de réplica 25 veces menor en comparación con PostgreSQL estándar. Puedes configurar hasta 20 nodos en todas las instancias del 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. El uso de esta estrategia ayuda a mejorar el rendimiento de las consultas y el almacenamiento en caché.
  • Puedes ajustar el tamaño de tus instancias principales y de grupo de lectura de forma diferente según tus requisitos. Para obtener más información sobre las prácticas recomendadas para las instancias de grupos de lectura, consulta Prácticas recomendadas para mejorar el rendimiento y la disponibilidad de AlloyDB.
  • Agrega más de un nodo por instancia de grupo de lectura para obtener alta disponibilidad.
  • Habilita el motor de columnas de forma selectiva en instancias específicas del grupo de lectura para mejorar el rendimiento de las consultas de lectura. Esto no requiere habilitar el motor de columnas en la instancia principal.

Considera usar funciones integradas, como el asesor de índices, para ayudarte a agregar índices que puedan mejorar el rendimiento de las consultas.

Cargas de trabajo de OLAP

Para las cargas de trabajo de OLAP, la métrica de tamaño principal es el rendimiento de las consultas, en especial, las que requieren análisis completos de la tabla o agregaciones. AlloyDB para PostgreSQL incluye un motor de columnas integrado que ayuda a acelerar las consultas analíticas. Habilitar el motor de columnas de forma predeterminada consume el 30% de la memoria y usa automáticamente datos de caché ultrarrápidos.

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

Tipos de Deployment

Según tu carga de trabajo, puedes implementar AlloyDB para PostgreSQL solo como instancia principal o como instancia principal con 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 ayudar con las consultas OLAP.
  • Considera implementar con 16 CPU virtuales o una máquina más grande que proporcione más memoria para almacenar datos de columnas.

Principal con grupo de lectura

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

  • Si tienes muchas operaciones de escritura y también lecturas analíticas sensibles a la latencia con requisitos de baja demora, implementa la instancia principal con la HA habilitada y con instancias del grupo de lectura.
  • Habilita el motor de columnas en las instancias de grupo de lectura en las que ejecutas 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. El uso de esta estrategia ayuda a mejorar el rendimiento de las consultas y el almacenamiento en caché.
  • Puedes ajustar el tamaño de tus instancias principales y de grupo de lectura de forma diferente según tus requisitos. Para obtener más información sobre las prácticas recomendadas para las instancias de grupos de lectura, consulta Prácticas recomendadas para mejorar el rendimiento y la disponibilidad de AlloyDB.
  • Agrega más de un nodo por instancia de grupo de lectura para obtener alta disponibilidad.
  • Habilita el motor de columnas de forma selectiva en instancias específicas del grupo de lectura para mejorar el rendimiento de las consultas de lectura. Esto no requiere habilitar el motor de columnas en la instancia principal.

¿Qué sigue?