Dopo aver svolto ricerche sui moderni server Web, ritengo di essere piuttosto ignorante quando si tratta di progettazione di server e gestione simultanea delle attività sia dal sistema operativo che dal server. Comprendo alcune importanti funzionalità di base come il blocco di thread / processi e il fatto che il sistema operativo eseguirà il passaggio da un thread bloccato a un thread pronto. Tuttavia, non penso di avere una comprensione intuitiva abbastanza buona dei costi generali di vari progetti sotto il paradigma multiprocessing.
In che modo esattamente un server, o qualsiasi programma per quel problema, che elabora richieste in parallelo su tutti i core / processori disponibili può essere più lento di un server che lo fa solo con uno o pochi? Un costo di cui sono a conoscenza finora è che leggere / scrivere la quantità di memoria necessaria per ogni attività parallela è più costoso che per uno. Capisco questo punto, ma in quali casi questo costo non supera le prestazioni aggiuntive di eseguire un'attività in coda in parallelo?
Capisco che l'architettura dei server può essere molto dettagliata e complicata, ma qualsiasi comprensione fondamentale che viene offerta sarebbe molto utile. Questa domanda non è stata in grado di capire come Node.js, che non massimizza l'utilizzo principale, possa essere più veloce di Nginx (che ho letto). Entrambi hanno "IO asincrono", il nodo lo fa solo meglio?