Capacidad de procesamiento, nodos y unidades de procesamiento

En esta página, se describe la capacidad de procesamiento de Spanner y las dos unidades de medida que se usan para cuantificarla: los nodos y las unidades de procesamiento.

Capacidad de procesamiento

La capacidad de procesamiento define la cantidad de recursos de servidor y almacenamiento que están disponibles para las bases de datos de una instancia. Cuando creas una instancia, especificas su capacidad de procesamiento como un número de unidades de procesamiento o como un número de nodos, con 1,000 unidades de procesamiento iguales a 1 nodo.

La unidad de medida que uses no importa, a menos que crees una instancia cuya capacidad de procesamiento sea inferior a 1,000 unidades de procesamiento (1 nodo); en este caso, debes usar unidades de procesamiento para especificar la capacidad de procesamiento de la instancia.

Cuando defines o cambias la capacidad de procesamiento en una instancia, especificas unidades de procesamiento en múltiplos de 100 (100, 200, 300, etcétera). Cuando la cantidad de unidades de procesamiento llega a 1,000, puedes especificar cantidades más grandes como múltiplos de 1,000 unidades de procesamiento (1,000, 2,000, 3,000 y así sucesivamente) o como nodos (1, 2, 3, etc.).

Las instancias con menos de 1, 000 unidades de procesamiento se compilan para cargas de trabajo, consultas y tamaños de datos más pequeños. Tienen recursos de procesamiento limitados y eso podría generar un escalamiento no lineal y un rendimiento para algunas cargas de trabajo. También pueden experimentar aumentos intermitentes en las latencias.

Límites de almacenamiento de datos

Como se detalla en Cuotas y límites, para proporcionar alta disponibilidad y baja latencia cuando se accede a una base de datos, Spanner usa la capacidad de procesamiento de una instancia como base para determinar los límites de almacenamiento de acuerdo con los siguientes lineamientos:

  • Para instancias de menos de 1 nodo (1,000 unidades de procesamiento), Spanner asigna 409.6 GB de datos por cada 100 unidades de procesamiento en la base de datos.
  • Para instancias de 1 nodo o más, Spanner asigna 4 TB de datos a cada nodo. Una mayor capacidad de almacenamiento (10 TB por nodo) está disponible en determinadas configuraciones de instancias de Spanner regionales y multirregionales. Para obtener más información, consulta Mejoras de rendimiento y almacenamiento.

Por ejemplo, para crear una instancia de una base de datos de 300 GB, puedes configurar su capacidad de procesamiento en 100 unidades de procesamiento. Esta cantidad de capacidad de procesamiento mantiene la instancia por debajo del límite hasta que la base de datos aumente a más de 409.6 GB. Cuando la base de datos alcance este tamaño, debes agregar otras 100 unidades de procesamiento para permitir que crezca. De lo contrario, Spanner podría rechazar las operaciones de escritura en la base de datos. Si deseas obtener más información, consulta Recomendaciones para el uso del almacenamiento de la base de datos.

Spanner factura por el almacenamiento que las instancias realmente usan y no por su asignación de almacenamiento total.

Rendimiento

Los valores máximos de la capacidad de procesamiento de lectura y escritura que puede proporcionar una cantidad determinada de capacidad de procesamiento dependen de la configuración de la instancia, así como del diseño del esquema y las características del conjunto de datos. Consulta las secciones sobre el rendimiento de la configuración regional y el rendimiento de la configuración multirregional para obtener más detalles.

Usas instancias con menos de 1,000 unidades de procesamiento para cargas de trabajo, consultas y tamaños de datos más pequeños. Para cargas de trabajo más grandes, sus recursos de procesamiento limitados pueden dar como resultado un escalamiento y un rendimiento no lineales, con aumentos intermitentes en las latencias.

La capacidad de procesamiento y la configuración de las instancias

Como se describe en Configuración regional y multirregional, Spanner distribuye una instancia entre zonas de una o más regiones para proporcionar alto rendimiento y alta disponibilidad. En consecuencia, Spanner también distribuye los recursos del servidor que proporciona la capacidad de procesamiento de la instancia.

El siguiente es un diagrama en el que se ilustra esta distribución de recursos del servidor.

Dos instancias creadas en una configuración de instancia regional

En este diagrama, se muestran dos instancias que tienen configuraciones regionales:

  • Instance-A muestra una instancia de 1,000 unidades de procesamiento (1 nodo) con su distribución de capacidad de procesamiento que consume recursos del servidor en cada una de las tres zonas.
  • Instance-B muestra una instancia de 2,000 unidades de procesamiento (2 nodos) con su distribución de capacidad de procesamiento que consume recursos del servidor en cada una de las tres zonas.

Observa lo siguiente en este diagrama:

  • Para cada instancia, Spanner asigna recursos del servidor en cada zona de la configuración regional. Cada recurso de servidor por zona usa la réplica de datos en su zona. Para obtener más información sobre las réplicas de datos en las configuraciones de instancias, consulta Configuraciones regionales y multirregionales. Para obtener información sobre cómo Spanner mantiene estas réplicas de datos sincronizadas, consulta Replicación.

  • Los recursos del servidor para la Instancia-A se muestran en cuadros únicos, mientras que los recursos para la Instancia-B se muestran en cuadros subdivididos en dos partes. Esta diferencia ilustra que Spanner asigna los recursos del servidor de manera diferente para las instancias de distintos tamaños:

    • Para instancias de 1,000 unidades de procesamiento (1 nodo) y otras más pequeñas, Spanner asigna los recursos del servidor en una sola tarea de servidor por zona.
    • Para las instancias de más de 1,000 unidades de procesamiento (1 nodo), Spanner asigna recursos del servidor en varias tareas del servidor por zona, con una tarea por cada 1,000 unidades de procesamiento. El uso de varias tareas del servidor por zona proporciona un mejor rendimiento y permite que Spanner cree divisiones de bases de datos y proporcione un rendimiento aún mejor.

Cambia la capacidad de procesamiento

Después de crear una instancia, puedes aumentar su capacidad de procesamiento más adelante. En la mayoría de los casos, las solicitudes se completan en pocos minutos. En raras ocasiones, un escalamiento vertical puede tardar hasta una hora en completarse.

En la mayoría de los casos, también puedes disminuir la capacidad de procesamiento. Hay algunos casos en los que no puedes disminuir la capacidad de procesamiento:

  • Quitar la capacidad de procesamiento requeriría que tu instancia almacene más de 4 TB de datos por cada 1,000 unidades de procesamiento (1 nodo).
  • Según tus patrones de uso históricos, Spanner creó una gran cantidad de divisiones para los datos de tu instancia y, en algunos casos excepcionales, Spanner no podría administrarlas después de quitar la capacidad de procesamiento.

En el último caso, puedes intentar reducir la capacidad de procesamiento en cantidades más pequeñas hasta que encuentres la capacidad mínima que necesita Spanner para administrar todas las divisiones de la instancia. Si la instancia ya no necesita tantas divisiones debido a un cambio en los patrones de uso, Spanner podría combinar algunas, finalmente, algunas divisiones y permitirte intentar reducir aún más la capacidad de procesamiento de la instancia después de una o dos semanas.

Cuando quites capacidad de procesamiento, supervisa el uso de CPU y las latencias de solicitud en Cloud Monitoring para asegurarte de que este se mantenga por debajo del 65% en las instancias regionales y del 45% en cada región en las instancias multirregionales. Es posible que experimentes un aumento temporal en las latencias de las solicitudes mientras quitas la capacidad de procesamiento.

Spanner no tiene un modo de suspensión. La capacidad de procesamiento de Spanner es un recurso dedicado y, incluso cuando no ejecutas una carga de trabajo, Spanner con frecuencia realiza trabajos en segundo plano para optimizar y proteger tus datos.

Puedes usar la consola de Google Cloud, Google Cloud CLI o las bibliotecas cliente de Spanner para cambiar la capacidad de procesamiento. Para obtener más información, consulta Cambia la capacidad de procesamiento.

Capacidad de procesamiento frente a réplicas

Si necesitas escalar verticalmente el servidor y los recursos de almacenamiento en tu instancia, aumenta su capacidad de procesamiento. Ten en cuenta que aumentar la capacidad de procesamiento no aumenta la cantidad de réplicas (que se fijan para una configuración de instancia determinada), sino que aumenta los recursos que tiene cada réplica en la instancia. El aumento de la capacidad de procesamiento le da a cada réplica más CPU y RAM, lo que aumenta la capacidad de procesamiento de la réplica (es decir, pueden ocurrir más lecturas y escrituras por segundo).

¿Qué sigue?