Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Escalado de capacidad en un clúster de base de datos de Neptune sin servidor
La configuración de un clúster de base de datos de Neptune sin servidor es similar a la configuración de un clúster normal aprovisionado, con una configuración adicional para las unidades mínimas y máximas de escalado y con el tipo de instancia establecido en db.serverless
. La configuración de escalado se define en las unidades de capacidad de Neptune (NCUs), cada una de las cuales consta de 2 GiB (gibibyte) de memoria () junto con la capacidad del procesador virtual (vRAM) y la red asociadas. CPU Se configura como parte de un ServerlessV2ScalingConfiguration
objeto y se representa de la siguiente manera: JSON
"ServerlessV2ScalingConfiguration": { "MinCapacity":
(minimum NCUs, a floating-point number such as 1.0)
, "MaxCapacity":(maximum NCUs, a floating-point number such as 128.0)
}
En cualquier momento, cada instancia de escritor o lector de Neptune tiene una capacidad medida por un número de punto flotante que representa el número que utiliza NCUs actualmente esa instancia. Puede utilizar la CloudWatch ServerlessDatabaseCapacitymétrica a nivel de instancia para saber cuántas está utilizando actualmente NCUs una instancia de base de datos determinada y la NCUUtilizationmétrica para averiguar qué porcentaje de su capacidad máxima utiliza la instancia. Ambas métricas también están disponibles en el nivel de clúster de base de datos para mostrar la utilización promedio de los recursos del clúster de base de datos en su conjunto.
Al crear un clúster de base de datos Neptune Serverless, establece el número mínimo y máximo de unidades de capacidad de Neptune (NCUs) para todas las instancias sin servidor.
El NCU valor mínimo que especifique establece el tamaño más pequeño al que puede reducirse una instancia sin servidor de su clúster de base de datos y, del mismo modo, el NCU valor máximo establece el tamaño más grande al que puede crecer una instancia sin servidor. El NCU valor máximo más alto que puede establecer es 128,0 NCUs y el mínimo más bajo es 1,0. NCUs
Neptune realiza un seguimiento continuo de la carga en cada instancia de Neptune Serverless mediante la supervisión del uso de recursos como CPU la memoria y la red. La carga la generan las operaciones de la base de datos de la aplicación, el procesamiento en segundo plano del servidor y otras tareas administrativas.
Cuando la carga de una instancia sin servidor alcanza el límite de la capacidad actual o cuando Neptune detecta cualquier otro problema de rendimiento, la instancia se escala verticalmente de forma automática. Cuando la carga de la instancia disminuye, la capacidad se reduce hasta alcanzar las unidades de capacidad mínima configuradas, y la CPU capacidad se libera antes que la memoria. Esta arquitectura permite liberar recursos de forma gradual y controlada y gestiona las fluctuaciones de la demanda de forma eficaz.
Puede hacer que una instancia de lector se escale junto con la instancia de escritor o que se escale de forma independiente mediante la configuración de su nivel de promoción. Las instancias de lector en los niveles de promoción 0 y 1 se escalan al mismo tiempo que las de escritor, lo que permite que tengan el tamaño adecuado para asumir de forma rápida la carga de trabajo del escritor en caso de que se produzca una conmutación por error. Los lectores de los niveles de promoción 2 a 15 se escalan independientemente de la instancia de escritor y por separado.
Si ha creado su clúster de base de datos Neptune como un clúster Multi-AZ para garantizar una alta disponibilidad, Neptune Serverless escala todas las instancias AZs hacia arriba y hacia abajo en función de la carga de la base de datos. Puede establecer el nivel de promoción de una instancia de lector en una AZ secundaria en 0 o 1 para que se escale o reduzca verticalmente junto con la capacidad de la instancia de escritor en la AZ principal, para que esté lista para asumir la carga de trabajo actual en cualquier momento.
nota
El almacenamiento de un clúster de base de datos de Neptune consta de seis copias de todos sus datos, distribuidas en tresAZs, independientemente de si creó el clúster como un clúster Multi-AZ o no. La replicación del almacenamiento la gestiona el subsistema de almacenamiento y no se ve afectada por Neptune sin servidor.
Selección de un valor de capacidad mínimo para un clúster de base de datos de Neptune sin servidor
El valor mínimo que puede establecer para la capacidad mínima es. 1.0
NCUs
Asegúrese de no establecer el valor mínimo por debajo de lo que la aplicación requiere para funcionar de forma eficaz. Si se establece un valor demasiado bajo, se puede producir una mayor tasa de tiempos de espera en determinadas cargas de trabajo que consumen mucha memoria.
Si se establece el valor mínimo lo más bajo posible, se puede ahorrar dinero, ya que el clúster utilizará el número mínimo de recursos cuando la demanda sea baja. Sin embargo, si la carga de trabajo tiende a fluctuar de forma drástica, de muy baja a muy alta, puede ser más conveniente establecer el valor mínimo más alto, ya que de esta manera las instancias de Neptune sin servidor se escalarán verticalmente con mayor rapidez.
El motivo de esto es que Neptune elige los incrementos de escalado en función de la capacidad actual. Si la capacidad actual es baja, al principio Neptune escalará verticalmente de forma paulatina. Si el valor mínimo es mayor, Neptune comienza con un incremento de escalado mayor y, por lo tanto, puede escalar verticalmente de forma más rápida para hacer frente a un gran aumento repentino de la carga de trabajo.
Selección de un valor de capacidad máxima para un clúster de base de datos de Neptune sin servidor
El valor más alto que puede establecer para la capacidad máxima es 128.0
NCUs y el valor más bajo que puede establecer para la capacidad máxima es 2.5
NCUs. Sea cual sea el valor máximo de capacidad que establezca, debe ser al menos igual al valor mínimo de capacidad que establezca.
Por regla general, establezca un valor máximo lo suficientemente alto como para hacer frente a los picos de carga que probablemente tenga la aplicación. Si se establece un valor demasiado bajo, se puede producir una mayor tasa de tiempos de espera en determinadas cargas de trabajo que consumen mucha memoria.
Establecer el valor máximo lo más alto posible tiene la ventaja de que probablemente la aplicación pueda gestionar incluso las cargas de trabajo más inesperadas. La desventaja es que se pierde parte de la capacidad de predecir y controlar los costos de los recursos. Un aumento inesperado de la demanda puede terminar costando mucho más de lo que su presupuesto había previsto.
La ventaja de un valor máximo específicamente establecido es que le permite hacer frente a los picos de demanda y, al mismo tiempo, limitar los costos de computación de Neptune.
nota
El cambio del rango de capacidad de un clúster de base de datos de Neptune sin servidor provoca cambios en los valores predeterminados de algunos parámetros de configuración. Neptune puede aplicar algunos de estos nuevos valores predeterminados con efecto inmediato, pero algunos de los cambios en los parámetros dinámicos se aplicarán después de reiniciar el sistema. El estado pending-reboot
indica que es necesario reiniciar para aplicar algunos cambios en los parámetros.
Uso de la configuración actual para estimar los requisitos del sistema sin servidor
Si normalmente modifica la clase de instancia de base de datos de las instancias de base de datos aprovisionadas para hacer frente a cargas de trabajo especialmente altas o bajas, puede sacar partido de esa experiencia para hacer una estimación aproximada del rango de capacidad equivalente de Neptune sin servidor.
Estimación de la mejor configuración de capacidad mínima
Puede aplicar lo que sabe sobre el clúster de base de datos de Neptune existente para estimar la mejor configuración de capacidad mínima sin servidor.
Por ejemplo, si la carga de trabajo aprovisionada tiene requisitos de memoria demasiado altos para clases de instancias de base de datos pequeñas, como T3
oT4g
, elija una NCU configuración mínima que proporcione memoria comparable a la de una clase de instancia de base de R6g
datos R5
o clase de instancia de base de datos.
O bien, supongamos que utiliza la clase de instancia de base de datos db.r6g.xlarge
cuando el clúster tiene una carga de trabajo baja. Esa clase de instancia de base de datos tiene 32 GiB de memoria, por lo que puede especificar una NCU configuración mínima de 16 para crear instancias sin servidor que se puedan reducir hasta aproximadamente la misma capacidad (cada una NCU corresponde a unos 2 GiB de memoria). Si, en ocasiones, la instancia db.r6g.xlarge
se ha infrautilizado, es posible que pueda especificar un valor más bajo.
Si su aplicación funciona de manera más eficiente cuando las instancias de base de datos pueden almacenar una cantidad determinada de datos en la memoria o en la caché del búfer, considere la posibilidad de especificar una NCU configuración mínima lo suficientemente grande como para proporcionar suficiente memoria para ello. De lo contrario, es posible que los datos se expulsen de la caché del búfer cuando las instancias sin servidor se reduzcan verticalmente y, con el tiempo, deberán volver a leerse en la caché del búfer cuando las instancias se vuelvan a escalar verticalmente. Si la cantidad de E/S necesaria para devolver los datos a la memoria caché del búfer es considerable, podría valer la pena elegir un NCU valor mínimo más alto.
Si descubre que las instancias sin servidor se ejecutan la mayor parte del tiempo con una capacidad determinada, sería buena opción establecer la capacidad mínima un poco más baja. Neptune sin servidor puede estimar de forma eficaz cuánto y con qué rapidez deben escalarse verticalmente cuando la capacidad actual no sea drásticamente inferior a la capacidad necesaria.
En una configuración mixta, con lectores de Neptune sin servidor y un escritor aprovisionado, los lectores no se pueden escalar junto con el escritor. Dado que se escalan de forma independiente, establecer una capacidad mínima baja para ellos puede provocar un retraso excesivo de la replicación. Es posible que no tengan la capacidad suficiente para mantenerse al día con los cambios que realiza el escritor cuando hay una carga de trabajo con uso muy intensivo de escritura. En esta situación, establezca una capacidad mínima que sea comparable con la capacidad del escritor. En concreto, si observa un retraso de réplica en los lectores que se encuentran en los niveles de promoción 2 a 15, aumente la configuración de capacidad mínima del clúster.
Estimación de la mejor configuración de capacidad máxima
También puede aplicar lo que sabe sobre el clúster de base de datos de Neptune existente para estimar la configuración de capacidad máxima sin servidor que funcione mejor.
Por ejemplo, supongamos que utiliza la clase de instancia de base de datos db.r6g.4xlarge
cuando el clúster tiene una carga de trabajo elevada. Esa clase de instancia de base de datos tiene 128 GiB de memoria, por lo que puede especificar una NCU configuración máxima de 64 para configurar instancias de Neptune Serverless equivalentes (cada una corresponde NCU a unos 2 GiB de memoria). Puede especificar un valor más alto para permitir que la instancia de base de datos se escale verticalmente aún más en caso de que la instancia db.r6g.4xlarge
no pueda gestionar siempre la carga de trabajo.
Si es poco frecuente que se produzcan picos inesperados en la carga de trabajo, se recomienda establecer una capacidad máxima lo suficientemente alta como para mantener el rendimiento de las aplicaciones incluso durante estos picos. Por otro lado, es posible que desee establecer una capacidad máxima más baja que pueda reducir el rendimiento durante picos inusuales, pero que permita a Neptune gestionar las cargas de trabajo previstas sin problemas, y esto limita los costos.