Configuração de escalabilidade sem servidor do Amazon DocumentDB - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configuração de escalabilidade sem servidor do Amazon DocumentDB

Escolhendo a faixa de capacidade de escalabilidade para um cluster sem servidor DocumentDB

Antes de adicionar qualquer instância sem servidor do DocumentDB a um cluster do Amazon DocumentDB, o cluster também deve ter o parâmetro definido. ServerlessV2ScalingConfiguration

O ServerlessV2ScalingConfiguration parâmetro consiste em dois valores que definem a faixa de capacidade de escalabilidade sem servidor de qualquer instância sem servidor no cluster:

  • MinCapacity— A capacidade mínima de escalabilidade de qualquer instância sem servidor do DocumentDB no cluster.

  • MaxCapacity— A capacidade máxima de escalabilidade de qualquer instância sem servidor do DocumentDB no cluster.

Escolhendo a MinCapacity configuração para um cluster sem servidor DocumentDB

É tentador sempre escolher 0,5 paraMinCapacity. Esse valor permite que a instância diminua até a menor capacidade quando estiver completamente ociosa, enquanto permanece ativa. No entanto, dependendo de como você usa esse cluster e das outras configurações definidas, uma capacidade mínima diferente pode ser o mais eficaz. Considere os seguintes fatores ao escolher a configuração de capacidade mínima:

  • A taxa de escalabilidade de uma instância sem servidor do DocumentDB depende de sua capacidade atual. Quanto maior a capacidade atual, com maior rapidez será possível aumentar a escala dela na vertical. Se você precisar que a instância aumente rapidamente até uma capacidade muito alta, considere definir a capacidade mínima para um valor em que a taxa de escalabilidade atenda às suas necessidades.

  • Se você normalmente modifica a classe de instância de suas instâncias em antecipação a uma carga de trabalho especialmente alta ou baixa, você pode usar essa experiência para fazer uma estimativa aproximada da faixa de capacidade equivalente sem servidor do DocumentDB. Para determinar o tamanho da memória de um tipo de instância provisionada do Amazon DocumentDB, consulte. Limites de instâncias

    Por exemplo, suponha que você use a classe de db.r6g.xlarge instância quando seu cluster tem uma carga de trabalho baixa. Essa classe de instância tem 32 GiB de memória. Assim, você pode especificar um MinCapacity de 16 para configurar uma instância sem servidor que pode ser reduzida para aproximadamente a mesma capacidade. Isso porque cada DCU corresponde a aproximadamente 2 GiB de memória. Você pode especificar um valor um pouco menor para reduzir ainda mais a escala da instância, caso ela às vezes seja subutilizada. db.r6g.xlarge

  • Se seu aplicativo funcionar com mais eficiência quando as instâncias tiverem uma certa quantidade de dados no cache de buffer, considere especificar uma configuração mínima de DCU em que a memória seja grande o suficiente para armazenar os dados acessados com frequência. Caso contrário, alguns dados serão removidos do cache do buffer quando as instâncias sem servidor forem reduzidas para um tamanho de memória menor. Então, quando as instâncias aumentam de escala, as informações são lidas novamente no cache do buffer ao longo do tempo. Se a quantidade necessária I/O para trazer os dados de volta ao cache do buffer for substancial, talvez seja mais eficaz escolher um valor mínimo de DCU mais alto. Para obter mais informações, consulte Dimensionamento de instância.

  • Se suas instâncias sem servidor do DocumentDB são executadas a maior parte do tempo em uma capacidade específica, considere especificar uma configuração de capacidade mínima que seja menor do que a linha de base, mas não muito menor. As instâncias sem servidor podem estimar com mais eficiência quanto e com que rapidez aumentar quando a capacidade atual não é drasticamente menor do que a capacidade necessária.

  • Se sua carga de trabalho provisionada tiver requisitos de memória muito altos para classes de instâncias pequenas, como T3 ou T4G, escolha uma configuração mínima de DCU que forneça memória comparável a uma instância R5 ou R6g.

  • Em particular, recomendamos o seguinte mínimo MinCapacity para uso com os recursos especificados (essas recomendações estão sujeitas a alterações):

    • Performance Insights — 2 DCUs

  • No Amazon DocumentDB, a replicação ocorre na camada de armazenamento, portanto, a capacidade do leitor não afeta diretamente a replicação. No entanto, para instâncias de leitura sem servidor do DocumentDB que escalam de forma independente, certifique-se de que a capacidade mínima seja suficiente para lidar com cargas de trabalho durante períodos intensivos de gravação, a fim de evitar a latência da consulta. Se as instâncias de leitura nos níveis de promoção 2 a 15 apresentarem problemas de desempenho, considere aumentar a capacidade mínima do cluster. Para obter detalhes sobre como alterar a escalabilidade das instâncias do leitor junto com o gravador ou de forma independente, consulteVisualizando e modificando o nível de promoção de leitores sem servidor.

    Se você tiver um cluster com instâncias de leitura sem servidor do DocumentDB, os leitores não escalam junto com a instância do escritor quando o nível de promoção dos leitores não é 0 ou 1. Nesse caso, definir uma capacidade mínima baixa pode ocasionar atraso excessivo de replicação. Isso ocorre porque os leitores podem não ter capacidade suficiente para aplicar alterações do gravador quando o banco de dados está ocupado. Recomendamos que você defina a capacidade mínima como um valor que represente uma quantidade comparável de memória e CPU à instância do gravador.

  • O tempo necessário para uma instância sem servidor do DocumentDB escalar de sua capacidade mínima para sua capacidade máxima depende da diferença entre seus valores mínimo e máximo de DCU. Quando a capacidade atual da instância é grande, o DocumentDB serverless aumenta em incrementos maiores do que quando a instância começa com uma capacidade pequena. Portanto, se você especificar uma capacidade máxima relativamente grande e a instância passar a maior parte do tempo perto dessa capacidade, considere aumentar a configuração mínima de DCU. Dessa forma, uma instância ociosa pode voltar à capacidade máxima mais rapidamente.

  • Alguns limites de instância são determinados pela capacidade atual da instância sem servidor, como limite de conexões, limite de cursor e limite de transações abertas. Se a capacidade atual da instância for pequena, os limites também serão igualmente pequenos. Se esses limites forem um problema quando sua instância sem servidor for reduzida para seu MinCapacity valor, considere aumentar MinCapacity para um valor maior. Para obter mais informações, consulte Limites de instância sem servidor do Amazon DocumentDB.

  • Além disso, certos limites de instância são limitados a MinCapacity um valor máximo menor se forem definidos como menor ou igual a 1,0 DCUs, como limite de conexões ativas, limite de cursor e limite de transações abertas. Se esses limites forem insuficientes para sua carga de trabalho, use um MinCapacity valor de pelo menos 1,5. DCUs Para obter mais informações, consulte Limites de instância sem servidor do Amazon DocumentDB.

Para obter instruções sobre como modificar a configuração de escalabilidade de um cluster, consulteGerenciando o Amazon DocumentDB sem servidor.

Escolhendo a MaxCapacity configuração para um cluster sem servidor DocumentDB

É tentador sempre escolher um valor alto para a configuração máxima de capacidade sem servidor do DocumentDB. Uma grande capacidade máxima permite que a instância se expanda ao máximo quando está executando uma carga de trabalho intensiva. Um valor baixo evita a possibilidade de cobranças inesperadas. Dependendo de como você usa esse cluster e das outras configurações definidas, o valor mais efetivo pode ser maior ou menor do que o imaginado originalmente. Considere os seguintes fatores ao escolher a configuração de capacidade máxima:

  • A capacidade máxima deve ser pelo menos tão alta quanto a capacidade mínima. É possível definir a capacidade mínima e máxima como valores idênticos. No entanto, nesse caso, a escala da capacidade nunca é aumentada nem reduzida na vertical. Assim, usar valores idênticos para a capacidade mínima e máxima não é apropriado além das situações de teste.

  • A capacidade máxima deve ser de pelo menos 1,0 DCUs e no máximo 256 DCUs.

  • Recomendamos monitorar a escalabilidade e o uso de recursos de suas instâncias sem servidor. Se sua instância sem servidor está frequentemente escalando para a capacidade máxima e atingindo restrições de recursos (por exemplo, quando a DCUUtilization métrica está em 100,0), recomendamos selecionar um valor maior. MaxCapacity Para obter mais informações, consulte Monitoramento do Amazon DocumentDB sem servidor.

  • Se você normalmente modifica a classe de instância de suas instâncias provisionadas em antecipação a uma carga de trabalho especialmente alta ou baixa, você pode usar essa experiência para estimar a faixa equivalente de capacidade sem servidor do DocumentDB. Para determinar o tamanho da memória das instâncias provisionadas do Amazon DocumentDB, consulte. Limites de instâncias

    Por exemplo, suponha que você use a classe de db.r6g.4xlarge instância quando seu cluster tem uma carga de trabalho alta. Essa classe de instância tem 128 GiB de memória. Assim, você pode especificar uma configuração máxima de DCU de 64 para configurar uma instância sem servidor que pode ser expandida até aproximadamente a mesma capacidade. Isso porque cada DCU corresponde a aproximadamente 2 GiB de memória. Você pode especificar um valor um pouco maior para permitir que a instância aumente ainda mais, caso sua db.r6g.4xlarge instância às vezes não tenha capacidade suficiente para lidar com a carga de trabalho de forma eficaz.

  • Se você tiver um limite orçamentário para o uso do banco de dados, escolha um valor que permaneça dentro desse limite, mesmo que todas as suas instâncias sem servidor sejam executadas na capacidade máxima o tempo todo. Lembre-se de que, quando você tem n instâncias sem servidor em seu cluster, a capacidade teórica máxima sem servidor que o cluster pode consumir a qualquer momento é n vezes a configuração máxima de DCU para o cluster. (A quantidade real consumida pode ser menor, por exemplo, se alguns leitores forem escalados independentemente do gravador.)

  • Se você usar instâncias de leitura sem servidor para descarregar parte da carga de trabalho somente para leitura da instância do gravador, talvez seja possível escolher uma configuração de capacidade máxima mais baixa. Você faz isso para refletir que cada instância do leitor não precisa ser escalada tão alto quanto se o cluster contivesse apenas uma única instância.

  • Suponha que você queira evitar uso excessivo devido a parâmetros de banco de dados mal configurados ou consultas ineficientes em sua aplicação. Nesse caso, você pode evitar o uso excessivo acidental escolhendo uma configuração de capacidade máxima menor que a mais alta absoluta que seja possível definir.

  • Se os picos decorrentes da atividade real do usuário forem raros, mas acontecerem, você pode levar essas ocasiões em consideração ao escolher a configuração de capacidade máxima. Se a prioridade for a aplicação continuar a funcionar com performance e escalabilidade totais, especifique uma configuração de capacidade máxima maior do que a observada no uso normal. Se for aceitável a aplicação ser executada com taxa de transferência reduzida durante picos extremos de atividade, escolha uma configuração de capacidade máxima um pouco menor. Escolha uma configuração que ainda tenha memória e recursos de CPU suficientes para manter a aplicação em execução.

  • Se você ativar configurações em seu cluster que aumentem o uso de memória para cada instância, leve essa memória em consideração ao decidir sobre o valor máximo de DCU. Essas configurações incluem aquelas do Performance Insights. Certifique-se de que o valor máximo de DCU permita que as instâncias sem servidor sejam escaladas o suficiente para lidar com a carga de trabalho quando esses recursos estiverem sendo usados. Para obter informações sobre a solução de problemas causados pela combinação de uma configuração de DCU máxima baixa e recursos do Amazon DocumentDB que impõem sobrecarga de memória, Evitando out-of-memory erros consulte (abaixo).

  • Em particular, recomendamos o seguinte mínimo MaxCapacity para uso com os recursos especificados (essas recomendações estão sujeitas a alterações):

    • Criação de instâncias sem servidor em um cluster com um grande volume de dados — 2 DCUs (isso inclui a criação de instâncias sem servidor como parte de uma restauração de cluster).

  • Alguns limites de instância são determinados pela capacidade atual da instância, como limite de conexões, limite de cursor e limite de transações abertas. Ao escolher o MaxCapacity valor para sua carga de trabalho, lembre-se desses limites de instância para evitar o gargalo de um desses limites. Para obter mais informações, consulte Limites de instância sem servidor do Amazon DocumentDB.

Para obter instruções sobre como modificar a configuração de escalabilidade de um cluster, consulteGerenciando o Amazon DocumentDB sem servidor.

Evitando out-of-memory erros

Se uma de suas instâncias sem servidor do DocumentDB atingir consistentemente o limite de sua capacidade máxima, o Amazon DocumentDB indicará essa condição definindo a instância com um status de parâmetros incompatíveis. Embora a instância tenha o status de parâmetros incompatíveis, algumas operações estão bloqueadas. Por exemplo, não é possível atualizar a versão do mecanismo. Para obter mais informações sobre o status de uma instância do Amazon DocumentDB, consulte Monitoramento do status de uma instância do Amazon DocumentDB.

Normalmente, sua instância entra nesse status quando é reiniciada com frequência devido a out-of-memory erros. O Amazon DocumentDB registra um evento quando esse tipo de reinicialização acontece. Para visualizar eventos de recursos, consulteVisualizando eventos do Amazon DocumentDB. Um uso de memória excepcionalmente alto pode ocorrer devido à sobrecarga de ativar configurações como o Performance Insights. Também pode vir de uma carga de trabalho pesada na sua instância ou do gerenciamento dos metadados associados a um grande número de objetos do esquema.

Se a pressão da memória diminuir para que a instância não atinja sua capacidade máxima com muita frequência, o Amazon DocumentDB alterará automaticamente o status da instância para disponível.

Para se recuperar dessa condição, você pode realizar algumas ou todas as seguintes ações:

  • Aumente o limite inferior de capacidade para instâncias sem servidor alterando o valor mínimo da unidade de capacidade (DCU) do DocumentDB para o cluster. Isso evita problemas em que um banco de dados ocioso tem a escala reduzida na vertical para uma capacidade com menos memória do que o necessário para os recursos que estão ativados no cluster. Depois de alterar as configurações de DCU do cluster, reinicialize a instância sem servidor. Isso avalia se o Amazon DocumentDB pode redefinir o status para disponível.

  • Aumente o limite superior de capacidade para instâncias sem servidor alterando o valor máximo de DCU para o cluster. Isso evita problemas em que não é possível aumentar a escala de um banco de dados ocupado na vertical até uma capacidade com memória suficiente para os recursos ativados no cluster e na workload do banco de dados. Depois de alterar as configurações de DCU do cluster, reinicialize a instância sem servidor. Isso avalia se o Amazon DocumentDB pode redefinir o status para disponível.

  • Desative as configurações que exigem sobrecarga de memória. Por exemplo, suponha que você tenha um recurso como o Performance Insights ativado, mas não o use. Nesse caso, você pode desligá-lo. Ou você pode ajustar os valores de capacidade mínima e máxima do cluster para aumentar a quantidade de memória usada por esses tipos de recursos. Para obter as diretrizes sobre como escolher configurações de capacidade mínima e máxima, consulte Escolhendo a faixa de capacidade de escalabilidade para um cluster sem servidor DocumentDB.

  • Reduza a carga de trabalho na instância. Por exemplo, você pode adicionar instâncias de leitura ao cluster para distribuir a carga de consultas somente leitura em mais instâncias.

Por que minha instância sem servidor não está diminuindo?

Em alguns casos, o DocumentDB serverless não é reduzido para a capacidade mínima, mesmo sem carga no banco de dados. Isso pode acontecer por um dos seguintes motivos:

  • O Performance Insights pode aumentar o uso de recursos e impedir que o banco de dados seja reduzido para a capacidade mínima. Esses recursos incluem o seguinte:

  • Se uma instância do leitor não estiver sendo reduzida ao mínimo e permanecer com a mesma capacidade ou mais que a instância do gravador, verifique o nível de prioridade da instância do leitor. As instâncias do leitor sem servidor do DocumentDB no nível 0 ou 1 são mantidas em uma capacidade mínima pelo menos tão alta quanto a instância do gravador. Altere o nível de prioridade do leitor para 2 ou superior para que ele aumente e reduza a escala verticalmente independentemente do gravador. Para obter mais informações, consulte Escalabilidade sem servidor do Amazon DocumentDB.

  • Workloads de banco de dados pesadas podem aumentar o uso de recursos.

  • Grandes volumes de banco de dados podem aumentar o uso de recursos. O Amazon DocumentDB usa recursos de memória e CPU para gerenciamento de clusters. O Amazon DocumentDB exige mais CPU e memória para gerenciar clusters com maiores volumes de banco de dados. Se a capacidade mínima do cluster for menor do que a mínima exigida para o gerenciamento do cluster, a escala do cluster não será reduzida verticalmente para a capacidade mínima.

  • A atividade de manutenção em segundo plano pode aumentar periodicamente o uso de recursos.

Se a escala do banco de dados ainda não for reduzida verticalmente até a capacidade mínima configurada, pare e reinicie o banco de dados para recuperar quaisquer fragmentos de memória que possam ter se acumulado ao longo do tempo. Interromper e iniciar um banco de dados ocasiona tempo de inatividade, por isso recomendamos fazer isso com moderação.