Quante connessioni concorrenti supporta Workerman
Il concetto di concorrenza è piuttosto vago; qui verrà illustrato utilizzando due indicatori quantificabili: numero di connessioni concorrenti e numero di richieste concorrenti.
Il numero di connessioni concorrenti si riferisce al numero totale di connessioni TCP mantenute dal server in un dato momento, indipendentemente dal fatto che ci sia o meno comunicazione dati su queste connessioni. Ad esempio, un server di notifiche potrebbe mantenere milioni di connessioni dai dispositivi; poiché c'è raramente comunicazione dati su queste connessioni, il carico su questo server potrebbe essere praticamente 0. Finché c'è abbastanza memoria, può continuare ad accettare nuove connessioni.
Il numero di richieste concorrenti è generalmente misurato in QPS (quante richieste il server gestisce al secondo), e non si presta particolare attenzione a quante connessioni TCP siano attualmente aperte sul server. Ad esempio, se un server ha solo 10 connessioni client e ogni connessione client invia 10.000 richieste al secondo, il server deve essere in grado di supportare almeno 10*10.000=100.000 richieste al secondo. Si supponga che 100.000 richieste al secondo sia il limite massimo per questo server: se ogni client invia 1 richiesta al secondo, il server può supportare 100.000 client.
Il numero di connessioni concorrenti è limitato dalla memoria del server; in generale, un server Workerman con 24 GB di memoria può supportare circa 1.200.000 connessioni concorrenti.
Il numero di richieste concorrenti è limitato dalla capacità di elaborazione della CPU del server. Un server Workerman con 24 core può raggiungere una capacità di 450.000 richieste al secondo (QPS), mentre il valore effettivo può variare in base alla complessità del business e alla qualità del codice.
Attenzione
In scenari di alta concorrenza è necessario installare l'estensione event, fare riferimento alla sezione di installazione e configurazione. È inoltre necessario ottimizzare il kernel di Linux, in particolare il limite sul numero di file aperti dai processi; si prega di consultare la sezione sull'ottimizzazione del kernel nell'appendice.
Dati di test
I dati provengono da un'agenzia di test di carico di terze parti techempower.com, 20° ciclo di test.
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=db&l=zik073-sf
Configurazione del server:
Core totali 14, Thread totali 28, 32 GB di memoria, Switch Ethernet Cisco dedicato da 10 gigabit.
Logica di business:
Attività con query database, database pgsql, php8+jit.
QPS oltre 390.000.
