Práticas recomendadas: redimensionamento online de clusters - Amazon MemoryDB

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á.

Práticas recomendadas: redimensionamento online de clusters

A refragmentação consiste na adição e remoção de fragmentos ou nós de seu cluster bem como na redistribuição de espaços importantes. Como resultado, vários itens têm impacto na operação de refragmentação, como a carga no cluster, a utilização de memória e o tamanho geral dos dados. Para obter a melhor experiência, recomendamos que você siga as práticas gerais recomendadas de cluster para distribuição padrão uniforme de workload. Além disso, recomendamos as etapas a seguir.

Antes de iniciar a refragmentação, recomendamos o seguinte:

  • Teste sua aplicação: teste o comportamento da sua aplicação durante a refragmentação em um ambiente de preparação, se possível.

  • Receba uma notificação prévia de problemas de escalabilidade: a refragmentação é uma operação que demanda uso intensivo de computação. Por esse motivo, recomendamos manter a utilização da CPU abaixo de 80% em instâncias de vários núcleos e abaixo de 50% em instâncias de núcleo único durante a refragmentação. Monitore as métricas do MemoryDB e inicie a refragmentação antes que seu aplicativo comece a observar problemas de escalabilidade. As métricas úteis para acompanhar são CPUUtilization, NetworkBytesIn, NetworkBytesOut, CurrConnections, NewConnections, FreeableMemory, SwapUsage e BytesUsedForMemoryDB.

  • Garanta memória livre suficiente disponível antes da redução de escala na horizontal: se você estiver reduzindo a escala na horizontal, garanta que a memória livre disponível nos fragmentos a serem retidos é, pelo menos, 1,5 vez maior do que a memória usada nos fragmentos que você planeja remover.

  • Inicie a refragmentação em horários fora de pico: essa prática ajuda a reduzir a latência e o impacto de throughput no cliente durante a operação de refragmentação. Ela também ajuda a concluir a refragmentação com mais rapidez à medida que mais recursos podem ser usados na redistribuição de slots.

  • Analise o comportamento de tempo limite do cliente: alguns clientes podem observar maior latência durante o redimensionamento de cluster online. Configurar sua biblioteca de cliente com um tempo limite maior pode ajudar dando tempo para o sistema se conectar mesmo em condições de carga maiores no servidor. Em algum casos, você pode abrir um grande número de conexões com o servidor. Nesses casos, considere adicionar o recuo exponencial para uma nova conexão lógica. Fazer isso pode ajudar a evitar uma intermitência de novas conexões acessando o servidor ao mesmo tempo.

Durante a refragmentação, recomendamos o seguinte:

  • Evite comandos caros: evite executar operações com uso intensivo computacional e de E/S, como os comandos KEYS e SMEMBERS. Sugerimos essa abordagem porque essas operações aumentam a carga no cluster e geram impacto no desempenho do cluster. Em vez disso, use os comandos SCAN e SSCAN.

  • Siga as práticas recomendadas do Lua: evite scripts Lua de longa execução e sempre declare antecipadamente as chaves usadas em scripts Lua. Recomendamos essa abordagem para determinar se o script Lua não está usando comandos entre slots. Certifique-se de que as chaves usadas em scripts Lua pertencem ao mesmo slot.

Após a refragmentação, observe o seguinte:

  • A redução da escala horizontalmente pode ser parcialmente bem-sucedida se não houver memória suficiente disponível nos fragmentos de destino. Se isso ocorrer, analise a memória disponível e refaça a operação, se necessário.

  • Slots com itens grandes não são migrados. Especificamente, slots com itens maiores do que 256 MB após a serialização não são migrados.

  • Os comandos FLUSHALL e FLUSHDB não são compatíveis em scripts Lua durante uma operação de reestilhaçamento.