¿Cuánta concurrencia soporta Workerman?

El concepto de concurrencia es demasiado vago, aquí lo ilustramos con dos indicadores cuantificables: número de conexiones simultáneas y número de solicitudes concurrentes.

Número de conexiones simultáneas se refiere a cuántas conexiones TCP mantiene actualmente el servidor, sin importar si hay comunicación de datos sobre estas conexiones. Por ejemplo, en un servidor de mensajería, puede haber millones de conexiones de dispositivos, y como pocas tienen comunicación de datos, la carga en este servidor podría ser casi 0. Mientras la memoria sea adecuada, el servidor podrá seguir aceptando conexiones.

Número de solicitudes concurrentes se mide generalmente en QPS (¿cuántas solicitudes procesa el servidor por segundo?), sin prestar mucha atención a cuántas conexiones TCP hay en un momento dado en el servidor. Por ejemplo, si un servidor tiene solo 10 conexiones de clientes, y cada conexión de cliente tiene 10,000 solicitudes por segundo, entonces el servidor necesita soportar al menos 10*10,000=100,000 solicitudes por segundo (QPS). Supongamos que 100,000 solicitudes por segundo es el límite de este servidor; si cada cliente envía 1 solicitud por segundo al servidor, este servidor puede soportar hasta 100,000 clientes.

El número de conexiones simultáneas está limitado por la memoria del servidor; en general, un servidor Workerman con 24 GB de memoria puede soportar aproximadamente 1,200,000 conexiones simultáneas.

El número de solicitudes concurrentes está limitado por la capacidad de procesamiento de la CPU del servidor; un servidor Workerman de 24 núcleos puede alcanzar 450,000 solicitudes por segundo (QPS), aunque el valor real puede variar según la complejidad del negocio y la calidad del código.

Nota

En escenarios de alta concurrencia es necesario instalar la extensión event, consulte la sección de instalación y configuración. Además, es necesario optimizar el núcleo de Linux, especialmente el límite de número de archivos abiertos por proceso; consulte la sección de optimización del núcleo en el apéndice.

Datos de prueba de carga

Los datos provienen de una autoridad de carga de prueba de terceros techempower.com, ronda de prueba número 20.
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf

Configuración del servidor:
Total de núcleos 14, Total de hilos 28, 32 GB de memoria, Conmutador Ethernet de 10 gigabits dedicado Cisco.
Lógica de negocio:
Negocio con consultas a la base de datos, base de datos pgsql, php8+jit.
QPS superior a 390,000.