Workerman suporta quantas conexões simultâneas

O conceito de conexões simultâneas é um pouco vago. Aqui, vamos usar dois indicadores quantificáveis: número de conexões simultâneas e número de requisições simultâneas.

Número de conexões simultâneas refere-se a quantas conexões TCP estão mantidas pelo servidor em um determinado momento. Não nos preocupamos se há comunicação de dados nessas conexões. Por exemplo, em um servidor de push de mensagens, pode haver milhões de conexões de dispositivos, mas como há pouca comunicação de dados nessas conexões, a carga desse servidor pode ser quase 0. Enquanto a memória for suficiente, ele pode continuar aceitando conexões.

Número de requisições simultâneas é geralmente medido em QPS (quantidade de requisições que o servidor processa por segundo), e o número de conexões TCP em um determinado momento não é muito relevante. Por exemplo, se um servidor tem apenas 10 conexões de clientes e cada conexão de cliente recebe 10.000 requisições por segundo, isso significa que o servidor precisa suportar pelo menos 10 * 10.000 = 100.000 requisições por segundo. Supondo que 100.000 requisições por segundo seja o limite desse servidor, se cada cliente envia 1 requisição por segundo ao servidor, então esse servidor pode suportar 100.000 clientes.

O número de conexões simultâneas é limitado pela memória da máquina. Um servidor Workerman com 24 GB de memória pode suportar cerca de 1.200.000 conexões simultâneas.

O número de requisições simultâneas é limitado pela capacidade de processamento da CPU do servidor. Um servidor Workerman com 24 núcleos pode atingir até 450.000 requisições por segundo (QPS), sendo que o valor real pode variar de acordo com a complexidade do negócio e a qualidade do código.

Atenção

Cenários de alta concorrência necessitam da instalação da extensão event. Consulte a seção de instalação e configuração. Além disso, é necessário otimizar o kernel do Linux, especialmente no que diz respeito aos limites de número de arquivos abertos por processo. Consulte o capítulo de ajuste de kernel no apêndice.

Dados de teste de estresse

Dados coletados da terceira parte, instituição de teste de estresse reconhecida techempower.com, 20ª rodada de testes
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf

Configuração do servidor:
Total de núcleos 14, Total de threads 28, 32 GB de memória, Switch de Ethernet Cisco dedicado de 10 gigabits
Lógica de negócios:
Negócio com consultas ao banco de dados, banco de dados pgsql, php8+jit
QPS superior a 390.000