Dipende.
In primo luogo, le applicazioni non sono mai limitate da memoria, disco, CPU e così via. Tutti i sistemi sono. Di solito per le applicazioni utilizziamo una terminologia diversa, come intensivo della CPU , ad alta intensità di memoria e così via. Puoi anche usare termini come database-centric .
Sfortunatamente non ci sono risposte generali alla tua domanda. Un'applicazione web che elabora i video richiederà un uso intensivo della CPU, mentre un sito Web molto grande che utilizza una coda in memoria o tonnellate di memorizzazione nella cache sarebbe ad alta intensità di memoria , eccetera.
Quando guardiamo interi sistemi, invece, la risposta diventa un po 'più interessante. Un po 'sullo sfondo: sono stato un architetto senior in diversi grandi siti web. Il modo in cui il codice è stato sviluppato, nella mia esperienza, è il seguente:
- L'applicazione è progettata tenendo presente che è che si prevede che sia ad alta intensità di CPU o ad alto consumo di memoria. Inoltre, CDN come Akamai sono pianificati in questa fase.
- L'hardware è pianificato a un livello sperimentale sotto le ipotesi dell'architetto.
- L'applicazione è sviluppata secondo l'architettura senza grandi ottimizzazioni .
- Viene eseguito il profiling sotto test di carico. I principali colli di bottiglia sono identificati e le ottimizzazioni rilevanti sono inserite nella base del codice.
- Viene eseguito un nuovo round di test del carico e l'hardware viene adattato - idealmente si vogliono applicazioni senza colli di bottiglia - il collo di bottiglia previsto sarebbe il server web stesso (es. Apache o IIS muore a causa di troppe connessioni, indipendentemente dall'applicazione) .
- In base ai risultati di 4. e 5. e alle stime di traffico, viene deciso il numero di server Web.
- A questo punto, dal momento che è possibile scalare i server Web, il collo di bottiglia sarà in definitiva il server del database.
Come puoi vedere, la risposta non è semplice. Non esiste una regola generale costante in questi sistemi e si prevede che una spesa significativa si assicuri che tutti i possibili colli di bottiglia siano eliminati e che l'applicazione Web possa sopportare il traffico previsto con facilità.