Workerman unterstützt wie viele gleichzeitige Verbindungen

Gleichzeitigkeit ist ein zu vager Begriff, daher werden hier zwei quantifizierbare Indikatoren, die gleichzeitige Verbindungen und die gleichzeitigen Anfragen, erläutert.

Gleichzeitige Verbindungen beziehen sich auf die Anzahl der TCP-Verbindungen, die der Server zu einem bestimmten Zeitpunkt aufrechterhält. Ob über diese Verbindungen Datenkommunikation stattfindet, ist hierbei unwichtig. Beispielsweise kann ein Push-Nachrichtendienstserver mehrere Millionen Geräteverbindungen aufrechterhalten. Da jedoch selten Datenkommunikation über diese Verbindungen stattfindet, könnte die Last auf diesem Server nahezu 0 sein. Solange der Arbeitsspeicher ausreichend ist, kann er weiterhin Verbindungen annehmen.

Gleichzeitige Anfragen werden typischerweise durch QPS (Queries Per Second, Anfragen pro Sekunde) gemessen, und dabei spielt die Anzahl der TCP-Verbindungen, die der Server zu einem bestimmten Zeitpunkt hat, eine untergeordnete Rolle. Angenommen, ein Server hat nur 10 Client-Verbindungen, und jede Client-Verbindung sendet 10.000 Anfragen pro Sekunde, dann muss der Server mindestens 10 * 10.000 = 100.000 Anfragen pro Sekunde verarbeiten können. Angenommen, 100.000 Anfragen pro Sekunde ist das Maximum dieses Servers; wenn jeder Client pro Sekunde eine Anfrage an den Server sendet, könnte dieser Server bis zu 100.000 Clients unterstützen.

Gleichzeitige Verbindungen sind durch den Arbeitsspeicher des Servers begrenzt. Ein Workerman-Server mit 24 GB RAM kann ungefähr 1.200.000 gleichzeitige Verbindungen unterstützen.

Gleichzeitige Anfragen sind von der Verarbeitungsleistung der CPU des Servers abhängig. Ein Workerman-Server mit 24 Kernen kann eine Durchsatzrate von 450.000 Anfragen pro Sekunde (QPS) erreichen; der tatsächliche Wert kann je nach Komplexität der Anwendung und der Codequalität variieren.

Hinweis

Für Hochkonkurrenzszenarien muss die event-Erweiterung installiert werden. Bitte beziehen Sie sich auf den Abschnitt zur Installation und Konfiguration. Darüber hinaus ist eine Optimierung des Linux-Kernels erforderlich, insbesondere die Einschränkung der Anzahl geöffneter Dateien für Prozesse. Bitte beachten Sie den Abschnitt zur Kerneltuning im Anhang.

Lasttestdaten

Die Daten stammen von einer renommierten Drittanbieter-Testorganisation techempower.com, Runde 20 des Lasttests
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf

Serverkonfiguration:
Total Cores 14, Total Threads 28, 32 GB RAM, dedizierter Cisco 10-Gigabit-Ethernet-Switch
Geschäftslogik:
Mit Datenbankabfragen, Datenbank pgsql, php8+jit
QPS über 390.000