Domanda

Consente di dire un sito web di e-commerce basato su Java EE si sta comportando bene dando il tempo di risposta previsto e il throughput. Il sito è in fase di grandi cambiamenti dell'interfaccia utente e si prevede di portare 3 volte più traffico.

Come faccio a sapere se il traffico web proiettata potrebbe essere gestita dall'ambiente esistente?

C'è un modo per scoprirlo con qualche formula empirica senza realmente caricare il test del sistema se ho l'utilizzo del sistema (CPU, l'utilizzo della memoria), il throughput, tempi di risposta del sistema esistente. (L'obiettivo è quello di determinare se gli SLA possono essere rispettate in fase di progettazione in sé)

È stato utile?

Soluzione

Non esiste una formula per questo, ci sono troppi fattori sono interdipendenti per questo. L'unico modo per ottenere i numeri realistici è di test empirici. Se non è possibile fare questo, sei unica opzione è di andare per eccesso di capacità a livello hardware e fare un'ipotesi che sarebbe andato qualcosa come questo:

  • Fa il nuovo utilizzo della CPU impatto UI?
  • ci vuole più tempo per il rendering e il trasferimento di una pagina? Stimare l'aumento della concorrenza.
  • Il più traffico significa anche più dati? Se sì, come fa questo impatto sulle prestazioni?
  • Ci sono i colli di bottiglia che potrebbero portare ad un aumento inatteso concorrenza?
  • Come funziona il maggiore utilizzo della memoria impatto della concorrenza?
  • Come funziona cache dei file impatto l'uso della memoria di sistema, cache del database, la cache JPA, ecc.
  • è la prestazione IO legato? E quanta capacità di riserva è disponibile?
  • è legato prestazioni della CPU? E quanta capacità di riserva è disponibile?
  • Quanto capacità di riserva in memoria avete?

Altri suggerimenti

I in parte d'accordo con la risposta precedente. Di sicuro qualsiasi pianificazione della capacità comporta la creazione di un modello con una serie di ipotesi (potenzialmente pericolosi).

Ma la vera, avendo una buona prospettiva storica:

  • carico transazionale (ad esempio colpi web su log di Apache)

  • utilizzo della CPU e della memoria

analisi

??carico prestazioni possono essere costruiti per determinare il "Servizio Demand" (grosso modo la quantità di risorse utilizzate per elaborare una singola richiesta) attraverso tecniche statistiche di analisi. Lo stesso parametro può quindi essere alimentato in modelli di code rete per stimare il tempo previsto di risposta e il throughput (il cui comportamento può diventare fortemente non lineare ad alti livelli di saturazione delle risorse).

Nonostante quello appena detto:   - non è una formula semplice

  • è necessario assumere che l'effetto della nuova interfaccia utente è la generazione del carico 3X e nient'altro (stessa richiesta di servizio per una richiesta, parità di efficienza)

  • si sta prendendo il rischio di problemi sperimentando con i colli di bottiglia non modellato possibile (ad esempio pool di connessioni saturi, banda di rete, ...), che è un problema generale di pianificazione della capacità.

Il test è l'unica opzione sicura, purtroppo troppo spesso un'opzione che non è disponibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top