Especificação de instância e nó

Nesta página, descrevemos as especificações de instâncias e nós do Memorystore para instâncias do Valkey. Para instruções sobre como criar uma instância, consulte Criar instâncias.

Escolher um tipo de nó

Todos os nós na sua instância usam o mesmo tipo de nó escolhido. O melhor tipo de nó para sua instância depende dos seus requisitos de preço, desempenho e capacidade do keyspace.

O tipo de nó shared-core-nano é para cargas de trabalho pequenas. Esse tipo de nó oferece performance variável e não tem um SLA, o que o torna inadequado para cargas de trabalho de produção.

O tipo de nó standard-small permite provisionar instâncias pequenas e aumentar a instância em incrementos menores a custos potencialmente mais baixos do que outros tipos de nós. O standard-small também oferece a vantagem de distribuir seu espaço de chaves em mais nós com uma contagem total maior de vCPUs. Isso oferece uma melhor relação preço-performance em comparação com highmem-medium, desde que a capacidade total do keyspace dos nós menores seja suficiente para suas necessidades de dados.

Recomendamos escolher o tipo de nó highmem-xlarge somente se você precisar de mais capacidade de instância do que o highmem-medium oferece. Embora o tipo de nó highmem-xlarge seja quatro vezes maior que o tipo highmem-medium, o desempenho não é quatro vezes maior, já que o desempenho do Valkey 7.2 não é escalonado linearmente quando vCPUs são adicionadas a nós cada vez maiores (escalonamento vertical). Em vez disso, para melhorar a performance de preço, faça escalonar horizontalmente adicionando mais nós a uma instância.

Especificação do tipo de nó

A capacidade e as características do nó dependem de qual dos quatro tipos de nós disponíveis você escolhe:

Capacidade do keyspace e sobrecarga reservada

Tipo de nó Capacidade padrão do keyspace gravável Capacidade total do nó
shared-core-nano 1,12 GB 1,4 GB
standard-small 5,2 GB 6,5 GB
highmem-medium 10,4 GB 13 GB
highmem-xlarge 46,4 GB 58 GB

O Memorystore reserva automaticamente uma parte da capacidade da instância para evitar erros de falta de memória (OOM, na sigla em inglês). Isso garante uma experiência tranquila de leitura e gravação de chaves. Os limites de memória e os detalhes de armazenamento são os seguintes:

  • Personalizar seu armazenamento:embora recomendemos usar as configurações padrão, você pode ajustar a quantidade de armazenamento reservado usando a configuração maxmemory. Para informações sobre maxmemory, consulte Configurações de instâncias compatíveis.

  • Quanto espaço de armazenamento você tem? Consulte a coluna Capacidade padrão do keyspace gravável da tabela anterior. Isso mostra quanto armazenamento está disponível para suas chaves por padrão.

  • Maximizar o armazenamento: se você quiser o máximo de armazenamento possível, a coluna capacidade total do nó mostra o limite de armazenamento quando você define a configuração maxmemory como 100%. No entanto, não recomendamos escolher um valor de maxmemory maior que a configuração padrão.

  • O tipo de nó shared-core-nano tem um limite fixo de 1, 12 GB e não pode ser alterado com a configuração maxmemory.

Características do nó

Tipo de nó Contagem de vCPU SLA oferecido Número máximo de clientes Memória máxima para clientes (configuração maxmemory-clients)
shared-core-nano 0,5 Não 5.000 12%
standard-small 2 Sim 16.000 (padrão). O valor máximo é 32.000 7%
highmem-medium 2 Sim 32.000 (padrão). O valor máximo é 64.000 7%
highmem-xlarge 8 Sim 64.000 4%

Dimensionar uma instância

Ao criar uma instância do Memorystore para Valkey, escolha um tipo de nó e especifique o número de fragmentos para a instância. Depois de criar a instância e conforme as necessidades de capacidade dela mudam, talvez seja necessário escalonar a instância das seguintes maneiras:

  • Mude o número de fragmentos da instância. Isso é chamado de escalonamento horizontal. Para escalonar uma instância horizontalmente, faça uma das seguintes ações:
    • Adicione fragmentos à instância. Isso está escalonando a instância horizontalmente.
    • Remova fragmentos da instância. Isso está escalonando a instância in.
  • Mude o tipo de nó da instância. Isso é chamado de escalonamento vertical. Para escalonar uma instância verticalmente, mude o tipo de nó dela para um dos seguintes:
    • Mude para um tipo de nó maior. Isso é escalonar a instância verticalmente.
    • Mude para um tipo de nó menor. Isso está reduzindo a escala da instância.

Especificação da instância

Esta seção mostra as capacidades mínima e máxima da instância, considerando o formato da instância, o tipo de nó e a contagem de réplicas.

Capacidade mínima gravável

A capacidade gravável é a quantidade de armazenamento disponível para gravar chaves. Ele é igual ao tamanho de um nó de instância. Portanto, dependendo do tipo de nó, a capacidade mínima gravável é de 1,4 GB, 6,5 GB, 13 GB ou 58 GB. A capacidade mínima gravável não é afetada pelo número de réplicas escolhido.

Capacidade máxima gravável

Tipo e tamanho do nó Capacidade máxima no modo de cluster desativado Capacidade máxima no modo de cluster ativado, considerando uma forma de instância de 250 nós principais e 0 réplicas por nó Capacidade máxima no modo de cluster ativado, considerando uma forma de instância de 125 nós principais e uma réplica por nó Capacidade máxima no modo de cluster ativado com uma instância de 83 nós principais e duas réplicas por nó
shared-core-nano - 1,4 GB 1,12 GB 350 GB 175 GB 116,2 GB
standard-small: 6,5 GB 5,2 GB 1.625 GB 812,5 GB 539,5 GB
highmem-medium: 13 GB 10,4 GB 3.250 GB 1.625 GB 1.079 GB
highmem-xlarge: 58 GB 46,4 GB 14.500 GB 7.250 GB 4.814 GB

Desempenho

Usar a ferramenta de comparativo de mercado memtier do OSS na região us-central1 gerou de 120.000 a 130.000 operações por segundo por nó de 2 vCPUs (standard-small e highmem-medium) com latência de microssegundos e tamanho de dados de 1 KiB.

Recomendamos que você faça seu próprio comparativo de mercado com cargas de trabalho reais ou sintéticas que se pareçam com seu tráfego de produção. Além disso, recomendamos dimensionar as instâncias com um buffer (ou "headroom") para picos de carga de trabalho ou tráfego inesperado. Para mais orientações, consulte as práticas recomendadas.

Endpoints de instância para o modo de cluster ativado

Esta seção explica os endpoints de descoberta e de dados que uma instância com o modo de cluster ativado tem.

Endpoint de descoberta

Cada instância tem um endpoint de descoberta a que seu cliente se conecta. É uma combinação de um endereço IP e um número de porta. Para instruções sobre como encontrar o endpoint de descoberta da instância, consulte Ver o endpoint de descoberta da instância.

Seu cliente também o usa para descoberta de nós. Seu cliente usa o endpoint de descoberta para recuperar a topologia de nós da instância e inicializar clientes de terceiros, mantendo-os atualizados em estado estável. A topologia de nó resultante fornece endpoints de nó (combinações de IP e porta) para serem armazenados em cache na memória pelo cliente de terceiros. O cliente cuida das atualizações e redirecionamentos automaticamente, sem necessidade de outras mudanças no aplicativo. Para informações sobre o comportamento e as práticas recomendadas de descoberta de clientes, consulte Descoberta de clientes.

O endpoint de descoberta é altamente disponível porque é apoiado por vários nós em várias zonas para atender à topologia de nós. A veiculação da topologia pelo endpoint é robusta, mesmo quando há falhas ou atualizações de nós de back-end.

O endpoint de descoberta tem o seguinte comportamento:

  1. O endpoint de descoberta da instância permanece inalterado durante todo o ciclo de vida dela, mesmo durante a manutenção ou por qualquer outra ação que você realize, como escalonar ou alterar a contagem de réplicas.

  2. Os endpoints de nós podem mudar e ser reciclados à medida que os nós são adicionados e removidos ao longo do tempo. O ideal é usar um cliente de terceiros que possa processar essas mudanças automaticamente por atualizações e redirecionamentos de topologia. Exemplos de clientes de terceiros podem ser encontrados em Exemplos de código da biblioteca de cliente. Seu aplicativo não pode ter dependências ou pressupostos de que os endpoints de nós vão permanecer inalterados para uma determinada instância.

Endpoint de dados

Cada instância também tem um endpoint de dados do Private Service Connect que o Memorystore para Valkey usa para conexão do cliente. Não se conecte diretamente a esse endpoint. Em vez disso, o Memorystore para Valkey usa esse endpoint para conectar seu cliente aos nós na instância.

Endpoints de instância para o modo de cluster desativado

Nesta seção, explicamos os endpoints primários e de leitura que cada instância com o modo de cluster desativado tem.

Endpoint principal

O endpoint principal é um endereço IP a que o aplicativo se conecta. Esse endpoint direciona o tráfego para o nó principal atual. As conexões com o endpoint principal podem enviar consultas de gravação e leitura.

O endpoint principal tem o seguinte comportamento:

  1. O endereço IP do endpoint principal permanece inalterado durante todo o ciclo de vida da instância. Se o nó subjacente falhar ou passar por um failover automático, o Memorystore para Valkey vai ajustar o endereço IP automaticamente. Os clientes não precisam fazer mudanças no endpoint. No entanto, se eventos não planejados resultarem em falhas de conexão, os clientes tentarão restabelecer uma conexão.
  2. Se um nó principal se tornar a réplica, as conexões com esse nó de réplica serão encerradas, e o Memorystore para Valkey vai redirecionar novas conexões para o novo nó principal por um failover automático. Espera-se que os clientes tentem novamente as conexões usando a espera exponencial.
  3. Se a instância tiver uma réplica, o endpoint principal terá uma disponibilidade maior do que o endpoint de leitura. Se a instância tiver duas réplicas provisionadas, o endpoint principal e o de leitura terão alta disponibilidade.

Endpoint do leitor

O endpoint de leitura é um endereço IP a que o aplicativo se conecta. Esse endpoint balanceia a carga de conexões de maneira uniforme nas réplicas da instância. As conexões com a réplica de leitura podem enviar consultas de leitura, mas não gravar consultas. O endpoint de leitura aumenta a capacidade e oferece isolamento de tráfego do nó principal. Para aplicativos que exigem acesso operacional, como scripts arriscados e jobs off-line, recomendamos isolar o tráfego do nó principal usando o endpoint de leitura.

O endpoint de leitura tem o seguinte comportamento:

  1. Mesmo quando uma instância não tem réplicas de leitura provisionadas, o Memorystore para Valkey provisiona o endereço IP do endpoint do leitor para permitir a adição dinâmica de réplicas de leitura.
  2. Se o sistema não tiver réplicas de leitura disponíveis para rotear o tráfego, uma conexão com o endpoint do leitor será encerrada. No entanto, ele não vai rotear conexões feitas com o endpoint do leitor para o nó principal.
  3. Se um nó de réplica se tornar o nó principal, as conexões com esse nó principal serão encerradas, e o Memorystore para Valkey vai redirecionar novas conexões para o novo nó de réplica. Os clientes tentam novamente essas conexões usando a espera exponencial.

Para saber como lidar com erros comuns ao se conectar a endpoints do modo de cluster desativado, consulte Como lidar com erros no modo de cluster desativado.