Recomendaciones de tamaño y de implementación

En este documento, se proporcionan recomendaciones de cargas de trabajo y de implementación para determinar el tamaño de las instancias de AlloyDB para PostgreSQL para cargas de trabajo de procesamiento de transacciones en línea (OLTP) y 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 y 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

Ajustar tu instancia de AlloyDB para PostgreSQL para mejorar el rendimiento incluye administrar lo siguiente:

  • Cómo dimensionar correctamente tus instancias principales y de grupo de lectura
  • 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, considera 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: 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 con alta disponibilidad (dos nodos en cada zona). De manera 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 escala de la nube con procesamiento y almacenamiento desagregados. Las escrituras 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 descarga en el almacenamiento.

Del mismo modo, con la arquitectura de caché de varios niveles, 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é de varios niveles 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 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 base de datos PostgreSQL autoadministrada 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 búsquedas. 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 el rendimiento de 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 para varias configuraciones de AlloyDB para PostgreSQL, de modo que puedas encontrar una configuración que cumpla con 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.

Lineamientos sobre el tamaño de la máquina

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

CPU virtual/Mem Rango de transacciones/s recomendadas
(30% en caché)
Tamaño de datos de trabajo
recomendado (hasta 128 TB de tamaño total)
max_connections recomendado
2 GB / 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 / 128 GB Hasta 8,000 Hasta 1 TB 5000
32 GB o 256 GB Hasta 14,000 Hasta 3 TB 5000
64 GB o 512 GB Hasta 20,000 Hasta 8 TB 5000
96 GB / 768 GB Hasta 25,000 Hasta 16 TB 5000
128 GB / 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:

  • Uso intensivo de escritura con lecturas de nivel bajo a medio
  • Consultas con muchas lecturas y pocas escrituras
  • Lectura y escritura típicas de OLTP (del 60% al 70% de lecturas y del 30% al 40% de escrituras).

Para obtener más información sobre los tipos de máquinas, consulta la Guía general sobre el tamaño de las máquinas.

Instancia principal con 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 del grupo de lectura. Puedes configurar hasta 20 nodos en todas las instancias del grupo de lectura. Para obtener más información, consulta Crea 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 del almacenamiento en caché y de las consultas.
  • Puedes dimensionar tus instancias principales y de grupo de lectura de manera diferente según tus requisitos. Si deseas 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 lograr 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 que se habilite el motor columnar en la instancia principal.

Considera usar funciones integradas, como el asesor de índices, para 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 exigen 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.

Si deseas obtener más información para medir el rendimiento de OLAP con AlloyDB para PostgreSQL usando la carga de trabajo de 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 realizar la implementación con una máquina de 16 CPU virtuales 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 también lecturas analíticas sensibles a la latencia con requisitos de rezago bajos, implementa la instancia principal con la alta disponibilidad habilitada y con instancias del grupo de lectura.
  • Habilita el motor de columnas en las instancias del 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. Usar esta estrategia ayuda a mejorar el rendimiento del almacenamiento en caché y de las consultas.
  • Puedes dimensionar tus instancias principales y de grupo de lectura de manera diferente según tus requisitos. Si deseas 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 lograr 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 que se habilite el motor columnar en la instancia principal.

¿Qué sigue?