Domanda

Ho alcune domande di base sulla comprensione dei fondamenti del test delle prestazioni.So che in varie circostanze potremmo voler fare - test di stress - test di resistenza ecc.Ma il mio obiettivo principale qui è garantire che il tempo di risposta sia decente dall'applicazione sotto un insieme di carico che si avvicina a un livello più alto o almeno al di sopra della media.

Le mie domande sono le seguenti:

  1. Quando inizi a pianificare il tempo di risposta previsto per la domanda;cosa consideri.Se questo è il primo passo.Voglio dire, ora ho un'applicazione web.Tiro semplicemente fuori una figura dall'aria e dico "Mi aspetto che l'applicazione impieghi 3 secondi per rispondere a ciascuna richiesta".e poi cercare di capire cosa manca alla mia domanda per ottenere quel tempo di risposta?

  2. OPPURE è il contrario e inizi il test delle prestazioni con un determinato set di hardware e dici, vediamo che tempo di risposta ottengo ora, quindi guardi i risultati e dici, beh, sono 8 secondi in questo momento, mi piacerebbe deve essere 3 secondi al massimo, quindi vediamo come possiamo ottimizzarlo affinché sia ​​3 secondi?Ma ancora una volta sono 3 secondi senza aria?Sono sicuro che l'ingrandimento delle sole macchine non farà aumentare i tempi di risposta.Il tempo di risposta aumenta solo quando una singola macchina/server è sotto carico e si avvia il clustering?

  3. Ora per un singolo utente ho un tempo di risposta di 3 secondi ma all'aumentare del carico diminuisce in modo esponenziale;quindi dove traccio il confine tra "Ho bisogno di ottimizzare ulteriormente il codice" (che ha il suo limite superiore) e "Ho bisogno di aumentare i miei server" (che ha anche un limite)

  4. Quali sono i migliori strumenti gratuiti per eseguire test di prestazioni e carico?Ho usato un po' Jmeter.Ma c'è qualcos'altro che sia buono e open source?

  5. Se devo ottimizzare il codice, inizio a profilare i flussi specifici che impiegano molto tempo per rispondere alle richieste?

Fondamentalmente mi piacerebbe vedere come si procede dall'inizio alla fine eseguendo i test delle prestazioni per la propria applicazione.Eventuali collegamenti o articoli sarebbero molto utili.

Grazie.

È stato utile?

Soluzione

Il Performance Testing Consiglio è il gateway per scambiare liberamente esperienze, le conoscenze e la pratica di test delle prestazioni.

Anche a leggere le Microsoft Patterns & Practices per il test delle prestazioni. Questa guida mostra un approccio end-to-end per l'attuazione di test delle prestazioni.

Phoenix menzionato gli strumenti Open Source.

Altri suggerimenti

Questo link e questo mostrano un esempio e il metodo di messa a punto una performance applicazione quando l'applicazione non ha "colli di bottiglia" ovvie. Funziona più intuitivo su singoli thread. Non ho esperienza di usarlo su applicazioni web, anche se gli altri fanno. Sono d'accordo che l'analisi non è facile, ma ho sempre fatto affidamento su questa tecnica, e penso che sia abbastanza facile / efficacia.

Prima di tutto, progettare l'applicazione in modo corretto.

Utilizzare un profiler, vedere dove sono i colli di bottiglia nella vostra applicazione sono, e portarli via, se possibile. Misurare le prestazioni prima di migliorarlo.

Cercherò di fornire una guida passo passo di base, che può essere utilizzata per implementare i test delle prestazioni nel tuo progetto.

1 - Prima di iniziare i test dovresti conoscere la quantità di memoria fisica e la quantità di memoria allocata per JVM o altro.Le dimensioni del DB raccolgono il maggior numero possibile di parametri per il tuo ambiente attuale. Conosci il tuo ambiente

2 - Il passo successivo sarebbe identificare la dimensione comune della produzione di DB e la crescita annuale prevista.Ti consigliamo di testare come si comporterà la tua applicazione dopo un anno, due, cinque ecc.,

3 - Automatizza la configurazione dell'ambiente, questo ti aiuterà molto in futuro per i test di regressione e la convalida della correzione dei difetti.Quindi è necessario disporre di dump DB per i test.Con il volume attuale (baseline), a un anno e a cinque anni.

4 - Una volta terminato, raccogli le informazioni di base - Pensa a monitorare i tuoi server sotto carico, forse hai già qualche soluzione di monitoraggio come http://newrelic.com/ questo ti aiuterà a identificare la causa del degrado delle prestazioni (CPU/Mem/Quantità di thread ecc.) Alcuni strumenti di test delle prestazioni dispongono di sistemi di monitoraggio integrati.

A questo punto sei pronto per passare alla selezione degli strumenti e del carico, sono già forniti materiali su come farlo, quindi salterò la parte con la selezione del carico di lavoro.

5 - Seleziona strumento Penso che JMeter + http://blazemeter.com/ è ciò di cui hai bisogno a questo punto, entrambi hanno molti articoli e materiali didattici carini, per la registrazione degli script consiglierei di utilizzare l'estensione Chrom di blazemeters invece della soluzione JMeters integrata.Se pensi ancora che ti manchi la conoscenza su come vengono fatte le cose in JMeter, ti consiglio di procurarti questo libro - Test delle prestazioni con JMeter 2.9 di Bayo Erinle

6 - Analizzare i risultati, rivedere il piano di test e intraprendere le azioni corrispondenti.

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