Configuração de escalabilidade do Amazon DocumentDB Sem Servidor - 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 do Amazon DocumentDB Sem Servidor

Escolha do intervalo de capacidade de escalabilidade para um cluster do DocumentDB Sem Servidor

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

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

  • MinCapacity: a capacidade mínima de escalabilidade de qualquer instância com tecnologia sem servidor do DocumentDB no cluster.

  • MaxCapacity: a capacidade máxima de escalabilidade de qualquer instância com tecnologia sem servidor do DocumentDB no cluster.

Escolha da configuração MinCapacity para um cluster do DocumentDB Sem Servidor

É tentador escolher sempre 0,5 para MinCapacity. Esse valor permite que a instância reduza sua escala na vertical para a menor capacidade quando estiver completamente ociosa, permanecendo 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 para uma instância do DocumentDB Sem Servidor 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 aumentar a escala da instância na vertical com rapidez até uma capacidade muito alta, considere definir a capacidade mínima como um valor em que o intervalo de escalabilidade atenda às suas necessidades.

  • Se você normalmente modifica a classe de suas instâncias prevendo uma workload especialmente alta ou baixa, é possível usar essa experiência para realizar uma estimativa aproximada do intervalo de capacidade do DocumentDB Sem Servidor equivalente. 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 instância db.r6g.xlarge quando seu cluster tem uma workload baixa. Essa classe de instância tem 32 GiB de memória. Portanto, é possível especificar uma MinCapacity de 16 para configurar uma instância com tecnologia sem servidor que possa reduzir a escala verticalmente para aproximadamente a mesma capacidade. Isso ocorre porque cada DCU corresponde a aproximadamente 2 GiB de memória. É possível especificar um valor um pouco menor para permitir que a instância seja reduzida ainda mais no caso de sua instância db.r6g.xlarge às vezes ser subutilizada.

  • Se a aplicação funcionar de forma mais eficiente 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 manter os dados acessados com frequência. Caso contrário, alguns dados serão removidos do cache de buffer quando a escala das instâncias com tecnologia sem servidor for reduzida verticalmente para um tamanho de memória menor. Então, quando a escala das instâncias for novamente aumentada verticalmente, as informações serão lidas de volta 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 do DocumentDB Sem Servidor são executadas na maior parte do tempo em uma determinada capacidade, considere especificar uma configuração de capacidade mínima inferior à linha de base, mas não muito mais baixa. As instâncias com tecnologia sem servidor podem estimar com mais eficiência quanto e com que rapidez a escala será aumentada verticalmente quando a capacidade atual não for drasticamente menor do que a capacidade necessária.

  • Se a workload 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 a MinCapacity mínima a seguir 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 leitor do DocumentDB Sem Servidor que escalam de forma independente, certifique-se de que a capacidade mínima seja suficiente para lidar com workloads durante períodos intensivos de gravação, a fim de evitar a latência da consulta. Se instâncias de leitor nos níveis de promoção de 2 a 15 apresentarem problemas de performance, considere aumentar a capacidade mínima do cluster. Para obter detalhes sobre como determinar se as instâncias do leitor são escaladas junto com o gravador ou de forma independente, consulte Visualização e modificação do nível de promoção de leitores com tecnologia sem servidor.

    Se você tem um cluster com instâncias de leitor do DocumentDB Sem Servidor, os leitores não escalarão junto com a instância de banco de dados de gravador quando o nível de promoção dos leitores não for 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 definir 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 do DocumentDB Sem Servidor 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 for grande, o DocumentDB Sem Servidor aumenta a escala verticalmente em incrementos maiores do que quando a instância parte de uma pequena capacidade. Portanto, se você especificar uma capacidade máxima relativamente grande e a instância passar a maior parte do tempo próxima dessa capacidade, considere aumentar a configuração mínima de DCU. Dessa forma, a escala de uma instância ociosa pode ser aumentada verticalmente novamente até a capacidade máxima com maior rapidez.

  • Alguns limites de instância são determinados pela capacidade atual da instâncias com tecnologia 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 tiver a escala reduzida verticalmente para seu valor de MinCapacity, considere aumentar MinCapacity para um valor maior. Para obter mais informações, consulte Limites das instâncias do Amazon DocumentDB Sem Servidor.

  • 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 das instâncias do Amazon DocumentDB Sem Servidor.

Para obter instruções sobre como modificar a configuração de escalabilidade de um cluster, consulte Gerenciamento do Amazon DocumentDB Sem Servidor.

Escolha da configuração MaxCapacity para um cluster do DocumentDB Sem Servidor

É tentador sempre escolher algum valor alto para configuração de capacidade do DocumentDB Sem Servidor. Uma capacidade máxima grande permite que a escala da instância seja aumentada verticalmente ao máximo quando estiver executando uma workload intensa. 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 com tecnologia sem servidor. Se sua instância com tecnologia sem servidor estiver frequentemente escalando para a capacidade máxima e atingindo restrições de recursos (por exemplo, quando a métrica DCUUtilization estiver em 100,0), recomendamos selecionar um valor de MaxCapacity maior. Para obter mais informações, consulte Monitoramento do Amazon DocumentDB Sem Servidor.

  • Se você normalmente modifica a classe de suas instâncias provisionadas prevendo uma workload especialmente alta ou baixa, é possível usar essa experiência para realizar uma estimativa do intervalo de capacidade do DocumentDB Sem Servidor equivalente. Para determinar o tamanho da memória de instâncias provisionadas do Amazon DocumentDB, consulte Limites de instâncias.

    Por exemplo, suponha que você use a classe de instância db.r6g.4xlarge quando o cluster tem uma workload alta. Essa classe de instância tem 128 GiB de memória. Portanto, é possível especificar uma configuração máxima de DCU de 64 para configurar uma instância com tecnologia sem servidor cuja escala possa ser aumentada verticalmente para aproximadamente a mesma capacidade. Isso ocorre porque cada DCU corresponde a aproximadamente 2 GiB de memória. É possível especificar um valor um pouco maior para aumentar ainda mais a escala da instância veticalmente, caso sua instância db.r6g.4xlarge eventualmente não tenha capacidade suficiente para lidar com a workload 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 com tecnologia sem servidor sejam executadas na capacidade máxima o tempo todo. Lembre-se de que quando houver n instâncias com tecnologia sem servidor em seu cluster, em tese, a capacidade de tecnologia 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ê fizer uso de instâncias do leitor com tecnologia sem servidor para descarregar parte da workload somente de leitura da instância do gravador, talvez você possa escolher uma configuração de capacidade máxima mais baixa. Esse procedimento é realizado para indicar que nem todas as instâncias de leitor precisam ser escaladas para um valor tão alto como seria necessário 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 throughput reduzido 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 dos Insights de performance. Verifique se o valor máximo de DCU permite que a escala das instâncias com tecnologia sem servidor seja aumentada verticalmente o suficiente para lidar com a workload 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 ocasionam sobrecarga de memória, consulte Evitando out-of-memory erros (adiante).

  • Em particular, recomendamos a MaxCapacity mínima a seguir 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 valor de MaxCapacity para sua workload, lembre-se desses limites de instância para evitar sofrer com o gargalo de um desses limites. Para obter mais informações, consulte Limites das instâncias do Amazon DocumentDB Sem Servidor.

Para obter instruções sobre como modificar a configuração de escalabilidade de um cluster, consulte Gerenciamento do Amazon DocumentDB Sem Servidor.

Evitando out-of-memory erros

Se uma de suas instâncias do DocumentDB Sem Servidor atinge de forma consistente o limite de sua capacidade máxima, o Amazon DocumentDB indica essa condição definindo o status da instância como incompatible-parameters. Enquanto a instância apresentar o status incompatible-parameters, algumas operações ficarã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 causada pela ativação de configurações como os Insights de performance. A causa também pode ser uma workload pesada em sua instância ou o gerenciamento dos metadados associados a um grande número de objetos de esquema.

Se a pressão da memória se tornar menor 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 de volta 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 as instâncias com tecnologia sem servidor alterando o valor mínimo da unidade de capacidade do DocumentDB (DCU) 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, reinicie a instância com tecnologia sem servidor. Com esse procedimento, você avalia se o Amazon DocumentDB consegue redefinir o status de volta como disponível.

  • Aumente o limite superior de capacidade das instâncias com tecnologia 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, reinicie a instância com tecnologia sem servidor. Com esse procedimento, você avalia se o Amazon DocumentDB consegue redefinir o status de volta como disponível.

  • Desative as configurações que exigem sobrecarga de memória. Por exemplo, digamos que você tenha um recurso, como os Insights de performance ativado, mas não o use. Se esse for o caso, é possível desativá-lo. Também é possível ajustar os valores de capacidade mínima e máxima do cluster para valores mais altos com o objetivo de levar em conta a memória utilizada por esses tipos de recursos. Para obter as diretrizes sobre como escolher configurações de capacidade mínima e máxima, consulte Escolha do intervalo de capacidade de escalabilidade para um cluster do DocumentDB Sem Servidor.

  • Reduza a workload na instância. Por exemplo, é possível adicionar instâncias de leitor ao cluster para distribuir a carga de consultas somente de leitura por mais instâncias.

Por que minha instância com tecnologia sem servidor não está reduzindo a escala verticalmente?

Em alguns casos, o DocumentDB Sem Servidor não reduz a escala verticalmente até a capacidade mínima, mesmo sem carga no banco de dados. Isso pode acontecer por um dos seguintes motivos:

  • Os Insights de performance podem aumentar o uso de recursos e impedir que a escala do banco de dados seja reduzida verticalmente para a capacidade mínima. Esses recursos incluem o seguinte:

  • Se a escala de uma instância de leitor não estiver sendo reduzida verticalmente ao mínimo e permanecer com a mesma capacidade ou maior que a instância do gravador, verifique o nível de prioridade da instância do leitor. As instâncias de leitor do DocumentDB Sem Servidor nos níveis 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 do Amazon DocumentDB Sem Servidor.

  • 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 o gerenciamento de clusters. O Amazon DocumentDB exige mais CPU e memória para gerenciar clusters com volumes maiores 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.