Configurare test di carico di Azure per il carico su larga scala

Questo articolo illustra come configurare il test di carico per la scalabilità elevata con Test di carico di Azure. Test di carico di Azure astrae la complessità del provisioning dell'infrastruttura per simulare il traffico su larga scala. Per aumentare il numero di istanze di un test di carico, è possibile configurare il numero di istanze del motore di test parallele. Per ottenere una distribuzione del carico ottimale, è possibile monitorare le metriche di integrità dell'istanza di test nel dashboard test di carico di Azure.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

  • Una risorsa di test di carico di Azure esistente. Per creare una risorsa di test di carico di Azure, vedere l'argomento di avvio rapido Creare ed eseguire un test di carico.

Configurare i parametri di carico per un test di carico

Per simulare il traffico utente per l'applicazione, è possibile configurare il modello di carico e il numero di utenti virtuali per cui si vuole simulare il carico. Eseguendo il test di carico in molte istanze del motore di test parallele, Test di carico di Azure può aumentare il numero di utenti virtuali che simulano il traffico verso l'applicazione. Il modello di carico determina la modalità di distribuzione del carico per tutta la durata del test di carico. Esempi di modelli di carico sono il carico lineare, il carico con rientri o il raccoglitore.

A seconda del tipo di test di carico, basato su URL o basato su JMeter, sono disponibili opzioni diverse per configurare il carico di destinazione e il modello di carico. Nella tabella seguente sono elencate le differenze tra i due tipi di test.

Tipo di test Numero di utenti virtuali Modello di carico
Basato su URL (di base) Specificare il numero di destinazione di utenti virtuali nella configurazione del test di carico. Modello di carico lineare, in base al tempo di ramp-up e al numero di utenti virtuali.
Basato su URL (avanzato) Specificare il numero di motori di test e il numero di utenti virtuali per istanza nella configurazione del test di carico. Configurare il modello di carico (lineare, passaggio, picco).
Basato su JMeter Specificare il numero di motori di test nella configurazione del test di carico. Specificare il numero di utenti virtuali nello script di test. Configurare il modello di carico nello script di test.

Configurare i parametri di carico per i test basati su URL

Per specificare i parametri di carico per un test di carico basato su URL:

  1. Nel portale di Azure passare alla risorsa di Test di carico di Azure creata.

  2. Nel riquadro di spostamento a sinistra selezionare Test per visualizzare tutti i test.

  3. Nell'elenco selezionare il test di carico e quindi selezionare Modifica.

    Screenshot che mostra l'elenco dei test di carico e il pulsante

    In alternativa, è anche possibile modificare la configurazione del test dalla pagina dei dettagli del test. A tale scopo, selezionare Configura e quindi selezionare Test.

  4. Nella pagina Informazioni di base assicurarsi di selezionare Abilita impostazioni avanzate.

  5. Nella pagina Modifica test selezionare la scheda Carica .

    Per i test basati su URL, è possibile configurare il numero di istanze del motore di test parallele e il modello di carico.

  6. Usare il controllo dispositivo di scorrimento Istanze del motore per aggiornare il numero di istanze del motore di test parallele. In alternativa, immettere il valore di destinazione nella casella di input.

    Screenshot della scheda

  7. Selezionare il valore del criterio di caricamento dall'elenco.

    Per ogni motivo, compilare le impostazioni di configurazione corrispondenti. Il grafico fornisce una rappresentazione visiva del modello di carico e dei relativi parametri di configurazione.

    Screenshot della scheda

Configurare i parametri di carico per i test basati su JMeter

Per specificare i parametri di carico per un test di carico basato su JMeter:

  1. Nel portale di Azure passare alla risorsa di Test di carico di Azure creata.

  2. Nel riquadro di spostamento a sinistra selezionare Test per visualizzare tutti i test.

  3. Nell'elenco selezionare il test di carico e quindi selezionare Modifica.

    Screenshot che mostra l'elenco dei test di carico e il pulsante

    In alternativa, è anche possibile modificare la configurazione del test dalla pagina dei dettagli del test. A tale scopo, selezionare Configura e quindi selezionare Test.

  4. Nella pagina Modifica test selezionare la scheda Carica . Utilizzare il controllo dispositivo di scorrimento Istanze motore per aggiornare il numero di istanze del motore di test oppure immettere il valore direttamente nella casella di input.

    Screenshot della scheda

  5. Selezionare Applica per modificare il test e usare la nuova configurazione quando viene rieseguita.

Monitorare le metriche dell'istanza del motore

Per assicurarsi che le istanze del motore di test non siano un collo di bottiglia delle prestazioni, è possibile monitorare le metriche delle risorse dell'istanza del motore di test. Un utilizzo elevato delle risorse per un'istanza di test potrebbe influire negativamente sui risultati del test di carico.

Test di carico di Azure segnala quattro metriche delle risorse per ogni istanza:

  • Percentuale CPU.
  • Percentuale memoria.
  • Byte di rete al secondo.
  • Numero di utenti virtuali.

Un'istanza del motore di test è considerata integra se la percentuale media della CPU o della memoria per tutta la durata dell'esecuzione del test rimane inferiore al 75%.

Per visualizzare le metriche delle risorse del motore:

  1. Passare alla risorsa Test di carico. Nel riquadro sinistro selezionare Test per visualizzare l'elenco dei test di carico.

  2. Nell'elenco selezionare il test di carico per visualizzare l'elenco delle esecuzioni di test.

  3. Nell'elenco di esecuzione dei test selezionare l'esecuzione del test.

  4. Nel dashboard di esecuzione dei test selezionare Integrità motore per visualizzare le metriche delle risorse del motore.

    Facoltativamente, selezionare un'istanza specifica del motore di test usando i controlli filtri.

Screenshot che mostra le metriche di integrità del motore di carico nel dashboard di esecuzione dei test.

Risolvere i problemi relativi alle istanze del motore non integre

Se una o più istanze mostrano un utilizzo elevato delle risorse, potrebbe influire sui risultati del test. Per risolvere il problema, provare uno o più dei passaggi seguenti:

  • Ridurre il numero di thread (utenti virtuali) per motore di test. Per ottenere un numero di utenti virtuali di destinazione, è possibile aumentare il numero di istanze del motore per il test di carico.

  • Assicurarsi che lo script sia efficace, senza codice ridondante.

  • Se lo stato di integrità del motore è sconosciuto, eseguire di nuovo il test.

Determinare le richieste al secondo

Il numero massimo di richieste al secondo (RPS) che il test di carico di Azure può generare per il test di carico dipende dalla latenza dell'applicazione e dal numero di utenti virtuali.The maximum number of requests al second (RPS) that Azure Load Testing can generate for your load test depends on the application's latency and the number of virtual users (VU). La latenza dell'applicazione è il tempo totale dall'invio di una richiesta di applicazione dal motore di test alla ricezione della risposta. Il numero di utenti virtuali è il numero di richieste parallele eseguite da Test di carico di Azure in un determinato momento.

Per calcolare il numero di richieste al secondo, applicare la formula seguente: RPS = (# di unità virtuali) * (1/latenza in secondi).

Ad esempio, se la latenza dell'applicazione è di 20 millisecondi (0,02 secondi) e si genera un carico di 2.000 VU, è possibile ottenere circa 100.000 RPS (2000 * 1/0,02s).

Per ottenere un numero di richieste di destinazione al secondo, configurare il numero totale di utenti virtuali per il test di carico.

Nota

Apache JMeter segnala solo le richieste che l'hanno effettuato al server e di nuovo, con esito positivo o negativo. Se Apache JMeter non è in grado di connettersi all'applicazione, il numero effettivo di richieste al secondo sarà inferiore al valore massimo. Le possibili cause potrebbero essere che il server è troppo occupato per gestire la richiesta o che manca un certificato TLS/SSL. Per diagnosticare i problemi di connessione, è possibile controllare il grafico Errori nel dashboard dei test di carico e scaricare i file di log dei test di carico.

Testare le istanze del motore e gli utenti virtuali

Nello script Apache JMeter è possibile specificare il numero di thread paralleli. Ogni thread rappresenta un utente virtuale che accede all'endpoint dell'applicazione. È consigliabile mantenere il numero di thread in uno script inferiore a un massimo di 250.

In Test di carico di Azure le istanze del motore di test sono responsabili dell'esecuzione dello script Apache JMeter. Tutte le istanze del motore di test vengono eseguite in parallelo. È possibile configurare il numero di istanze per un test di carico.

Il numero totale di utenti virtuali per un test di carico è quindi: UNITÀ virtuali = (thread#) * (istanze del motore di test#).

Per simulare un numero di utenti virtuali di destinazione, è possibile configurare i thread paralleli nello script JMeter e le istanze del motore per il test di carico di conseguenza. Monitorare le metriche del motore di test per ottimizzare il numero di istanze.

Ad esempio, per simulare 1.000 utenti virtuali, impostare il numero di thread nello script Apache JMeter su 250. Configurare quindi il test di carico con quattro istanze del motore di test, ovvero 4 x 250 thread.

Il percorso della risorsa test di carico di Azure determina la posizione delle istanze del motore di test. Tutte le istanze del motore di test all'interno di una risorsa test di carico sono ospitate nella stessa area di Azure.