FilasBenchmarks

Benchmarks do Valkey Queue

Esta página registra a campanha confirmatória do perfil Valkey Queue nos planos queue-free, starter, basic, premium e enterprise. Os testes mediram mensagens JSON usando Pub/Sub e aprovaram apenas candidatos com zero perda e p99 abaixo de 100 ms.

Status dos dados: valores da campanha corrigida. Cada capacidade publicada passou por três execuções de 30 segundos; P50, P90, P95 e P99 são o pior valor observado entre essas execuções. O primeiro rejeitado só aparece quando foi medido na mesma busca.

O formato final de cada resultado será:

PayloadCapacidade validadaTaxa operacional seguraMensagensP50P90P95P99Primeiro rejeitado

A capacidade validada é a maior taxa aprovada. A taxa operacional segura é 80% dela, arredondada para baixo em múltiplos de 50 msg/s. O primeiro rejeitado delimita a fronteira observada.

Quando a coluna “Primeiro rejeitado” estiver como não medido, a taxa é o maior candidato confirmado daquela campanha, mas a fronteira superior ainda não foi medida.

Plano queue-free

RecursoConfiguração
vCPU0,25
Memória RAM256 MiB
Armazenamento persistente1 GB

O armazenamento persistente faz parte dos recursos do plano, mas não torna o Pub/Sub persistente. Mensagens publicadas em Pub/Sub podem ser perdidas quando um assinante desconecta.

Resultados confirmados

PayloadCapacidadeTaxa seguraMensagensP50P90P95P99Primeiro rejeitado
256 B850/s650/s76.50212,48 ms15,27 ms50,69 ms90,82 ms900/s
1 KiB600/s450/s54.0020,64 ms8,38 ms49,59 ms99,49 ms1.050/s
4 KiB500/s400/s45.00313,93 ms16,00 ms48,90 ms84,63 ms550/s
16 KiB150/s100/s13.5023,40 ms7,31 ms38,91 ms70,54 ms200/s

Em todos os pontos publicados acima houve zero mensagens perdidas, duplicadas ou fora de ordem. Os valores são uma referência desta execução e não representam um SLA: rede, região, cliente, TLS e carga concorrente podem alterar o resultado.

Plano queue-starter

RecursoConfiguração
vCPU0,5
Memória RAM512 MiB

O armazenamento persistente do plano não foi informado nesta rodada e não é inferido a partir deste benchmark.

Resultados confirmados

PayloadCapacidadeTaxa seguraMensagensP50P90P95P99Primeiro rejeitado
256 B1.600/s1.250/s144.0040,82 ms3,09 ms5,91 ms53,47 ms1.650/s
1 KiB1.550/s1.200/s139.5051,08 ms1,62 ms8,85 ms79,73 ms1.600/s
4 KiB600/s450/s54.00214,48 ms15,02 ms15,95 ms42,30 ms700/s
16 KiB150/s100/s13.50216,83 ms17,92 ms20,66 ms49,12 ms200/s

Em todos os pontos do queue-starter houve zero mensagens perdidas, inválidas, duplicadas ou fora de ordem. Os recursos do plano são informativos; o resultado continua sujeito às condições da execução.

Plano queue-basic

RecursoConfiguração
vCPU1
Memória RAM1 GiB
Armazenamento persistente5 GB

Resultados confirmados

PayloadCapacidadeTaxa seguraMensagensP50P90P95P99Primeiro rejeitado
256 B7.250/s5.800/s652.51011,92 ms16,56 ms22,91 ms45,83 ms7.320/s
1 KiB2.850/s2.250/s256.50712,46 ms13,45 ms14,04 ms18,42 ms2.900/s
4 KiB843/s650/s75.87313,55 ms20,52 ms29,47 ms38,04 ms887/s
16 KiB100/s50/s9.00115,99 ms16,82 ms16,93 ms18,96 ms150/s

Em todos os pontos do queue-basic houve zero mensagens perdidas, inválidas, duplicadas ou fora de ordem. Os recursos do plano são informativos; o resultado continua sujeito às condições da execução.

Plano queue-premium

RecursoConfiguração
vCPU2
Memória RAM2 GB
Armazenamento persistente5 GB

Resultados confirmados

PayloadCapacidadeTaxa seguraMensagensP50P90P95P99Primeiro rejeitado
256 B7.900/s6.300/s711.0182,54 ms56,14 ms68,32 ms92,78 ms7.950/s
1 KiB3.950/s3.150/s355.5060,88 ms1,48 ms2,54 ms6,32 ms4.000/s
4 KiB2.000/s1.600/s180.0051,45 ms2,82 ms6,86 ms20,00 msnão medido
16 KiB300/s200/s27.0023,41 ms3,68 ms3,94 ms7,38 ms350/s

Em todos os pontos do queue-premium houve zero mensagens perdidas, inválidas, duplicadas ou fora de ordem. Os recursos do plano são informativos; o resultado continua sujeito às condições da execução.

Plano queue-enterprise

RecursoConfiguração
vCPU8
Memória RAM8 GB
Armazenamento persistente5 GB

Resultados confirmados

PayloadCapacidadeTaxa seguraMensagensP50P90P95P99Primeiro rejeitado
256 B6.350/s5.050/s571.5101,23 ms14,92 ms20,79 ms43,70 ms6.400/s
1 KiB3.550/s2.800/s319.5091,34 ms3,12 ms7,89 ms42,53 ms3.600/s
4 KiB850/s650/s76.5032,04 ms2,63 ms3,15 ms7,88 ms900/s
16 KiB150/s100/s13.50316,86 ms17,87 ms19,13 ms25,56 msnão medido

Em todos os pontos do queue-enterprise houve zero mensagens perdidas, inválidas, duplicadas ou fora de ordem. Os recursos do plano são informativos; o resultado continua sujeito às condições da execução.

Como o benchmark funciona

O script Node.js usa iovalkey e duas conexões separadas: uma para PUBLISH e outra para SUBSCRIBE. Cada mensagem JSON recebe um identificador da rodada, um número sequencial e um timestamp monotônico. O assinante usa esses campos para contar perdas, duplicações, ordem e latência.

Para cada tamanho de JSON, o script aquece a conexão por 10 segundos, encontra um intervalo de sucesso e falha por busca exponencial, refina a fronteira por busca binária e confirma o candidato em três execuções independentes de 30 segundos. O relatório calcula P50, P90, P95 e P99 por execução e usa o pior valor entre as confirmações.

Este resultado mede Pub/Sub com um publicador e um assinante. Não mede Streams, consumer groups, confirmação, replay, recuperação de pendências ou durabilidade de tarefas. Para trabalho de negócio que não pode ser perdido, consulte o padrão recomendado de Streams e consumer groups.

Próximos passos

Nessa página