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

Cuando creas una instancia, eliges una configuración de instancia y una cantidad de capacidad de procesamiento para tu instancia. La capacidad de procesamiento de tu instancia tiene las siguientes características:

  • Determina la cantidad de recursos de servidor y almacenamiento disponibles para las bases de datos de tu instancia, incluida la carga de disco. La carga de disco solo se aplica a las cargas de trabajo que acceden a los datos almacenados en el almacenamiento HDD. Para obtener más información, consulta la Descripción general del almacenamiento por niveles.
  • Se mide en unidades de procesamiento (PU) o nodos, y 1,000 PU equivalen a 1 nodo.

    • Un nodo o 1,000 PU son una unidad lógica de capacidad de procesamiento y no representan un solo servidor físico. Los recursos de procesamiento de cada nodo se distribuyen en varias máquinas físicas subyacentes o servidores. La cantidad de servidores por nodo depende de la configuración de tu instancia. Por ejemplo, una instancia regional usa al menos tres servidores por nodo, mientras que una instancia multirregional usa al menos cinco. Para obtener más información, consulta Configuraciones de capacidad de procesamiento y de instancias.
    • Cuando defines o cambias la capacidad de procesamiento en una instancia, debes especificar las PU en múltiplos de 100 (por ejemplo, 100, 200, 300). Cuando la cantidad de PU alcanza las 1,000, puedes especificar cantidades más grandes como múltiplos de 1,000 PU (por ejemplo, 1,000, 2,000, 3,000) o como nodos (por ejemplo, 1, 2, 3).

Spanner pone a disposición la capacidad de procesamiento especificada (replicada) en su totalidad dentro de cada zona que aloja una réplica de tus datos. Por ejemplo, si aprovisionas 1,000 PU para una instancia regional, que suele tener réplicas en tres zonas, cada una de esas tres zonas tiene las 1,000 PU completas de potencia de procesamiento disponibles para entregar su réplica. Spanner no divide ni distribuye las PU totales entre las zonas. La unidad de medida que usas no es importante, a menos que crees una instancia cuya capacidad de procesamiento sea menor que 1,000 PU (1 nodo). En este caso, debes usar las PU para especificar la capacidad de procesamiento de la instancia.

Las instancias con menos de 1, 000 PU están diseñadas para tamaños de datos, consultas y cargas de trabajo más pequeños. Tienen recursos de procesamiento limitados, lo que puede generar problemas de rendimiento y escalamiento no lineales para algunas cargas de trabajo. Es posible que estas instancias también experimenten aumentos intermitentes en las latencias.

Disponibilidad de Spanner

Spanner está diseñado para una alta disponibilidad. Dado que la capacidad de procesamiento de cada instancia se distribuye en varios servidores en diferentes zonas, Spanner es resistente a la falla de cualquier servidor. La pérdida de un servidor individual no constituye una falla del nodo. Spanner administra sus recursos subyacentes de forma automática para proporcionar disponibilidad continua a tu instancia.

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, según los siguientes lineamientos:

  • En las instancias más pequeñas que 1 nodo (1,000 PU), Spanner asigna 1,024.0 GiB de datos por cada 100 PU en la base de datos.
  • En el caso de las instancias de 1 nodo y más grandes, Spanner asigna 10 TiB de datos para cada nodo.

Por ejemplo, para crear una instancia para una base de datos de 300 GB, puedes establecer su capacidad de procesamiento en 100 PU. Esta capacidad de procesamiento mantiene la instancia por debajo del límite hasta que el tamaño de la base de datos supere los 1,024.0 GiB. Cuando la base de datos alcance este tamaño, debes agregar otras 100 PU para permitir que crezca. De lo contrario, es posible que Spanner rechace las operaciones de escritura en la base de datos. Para obtener más información, consulta Recomendaciones para el uso del almacenamiento de bases de datos.

Spanner factura el almacenamiento que realmente utilizan las instancias, no su asignación total de almacenamiento.

Rendimiento

Los valores máximos de 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, del diseño del esquema y de las características del conjunto de datos. Para obtener más información, consulta la Descripción general del rendimiento.

Usas instancias con menos de 1,000 PU para tamaños de datos, consultas y cargas de trabajo más pequeños. En el caso de cargas de trabajo más grandes, sus recursos de procesamiento limitados pueden generar un escalamiento y un rendimiento no lineales, con aumentos intermitentes en las latencias.

Capacidad de procesamiento y configuraciones de instancias

Como se describe en Configuraciones regionales, birregionales y multirregionales, Spanner distribuye una instancia en las zonas de una o más regiones para proporcionar un alto rendimiento y alta disponibilidad. Por lo tanto, Spanner también distribuye los recursos del servidor que proporciona la capacidad de procesamiento de la instancia.

A continuación, se muestra un diagrama que ilustra esta distribución de los recursos del servidor.

Dos instancias creadas en una configuración de instancia regional

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

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

En este diagrama, ten en cuenta lo siguiente:

  • 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 información sobre las réplicas de datos en las configuraciones de instancias, consulta Configuraciones regionales, birregionales y multirregionales. Para obtener información sobre cómo Spanner mantiene sincronizadas estas réplicas de datos, consulta Replicación.

  • Los recursos del servidor de la instancia A se muestran en cuadros individuales, mientras que los recursos de la instancia B se muestran en cuadros subdivididos en dos partes. Esta diferencia ilustra que Spanner asigna recursos del servidor de manera diferente para instancias de diferentes tamaños:

    • En el caso de las instancias de 1,000 PU (1 nodo) y más pequeñas, Spanner asigna recursos del servidor en una sola tarea del servidor por zona.
    • En el caso de las instancias más grandes que 1,000 PU (1 nodo), Spanner asigna recursos del servidor en varias tareas del servidor por zona, con una tarea por cada 1,000 PU. 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.

Cómo cambiar la capacidad de procesamiento

Después de crear una instancia, puedes aumentar su capacidad de procesamiento. En la mayoría de los casos, las solicitudes se completan en unos minutos. En raras ocasiones, el aumento de escala puede tardar hasta una hora en completarse.

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

  • Quitar capacidad de procesamiento requiere que tu instancia almacene más de 10 TiB 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, no podrá administrarlas después de quitar la capacidad de procesamiento.

En el último caso, puedes intentar reducir la capacidad de procesamiento en cantidades cada vez más pequeñas hasta que encuentres la capacidad mínima que Spanner necesita para administrar todas las divisiones de la instancia. Si la instancia ya no requiere tantas divisiones debido a un cambio en los patrones de uso, es posible que Spanner combine algunas divisiones y te permita 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 el uso de CPU permanezca por debajo del 65% para las instancias regionales y del 45% para cada región en instancias multirregionales. Es posible que experimentes un aumento temporal en las latencias de solicitud mientras quitas capacidad de procesamiento.

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

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

Capacidad de procesamiento frente a réplicas

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

¿Qué sigue?