Testare la latenza di rete tra macchine virtuali di Azure

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Prendere in considerazione l'uso e il piano di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.

Questo articolo descrive come testare la latenza di rete tra macchine virtuali di Azure usando gli strumenti disponibili pubblicamente Latte per Windows o SockPerf per Linux.

Per ottenere risultati più accurati, è consigliabile misurare la latenza di rete vm con uno strumento progettato per l'attività ed esclude altri tipi di latenza, ad esempio la latenza dell'applicazione. Latte e SockPerf forniscono i risultati della latenza di rete più rilevanti concentrandosi sul traffico TCP (Transmission Control Protocol) e Udp (User Datagram Protocol). La maggior parte delle applicazioni usa questi protocolli e questo traffico ha il massimo effetto sulle prestazioni dell'applicazione.

Tanti altri strumenti comuni per testare della latenza di rete, ad esempio Ping, non misurano il traffico TCP o UDP. Strumenti come Ping usano l'Internet Control Message Protocol (ICMP), che le applicazioni non utilizzano. Il traffico ICMP può essere trattato in modo diverso dal traffico dell'applicazione e non influisce direttamente sulle prestazioni dell'applicazione. I risultati dei test ICMP non si applicano direttamente ai carichi di lavoro che usano protocolli TCP e UDP.

Latte e SockPerf misurano solo i tempi di recapito del payload TCP o UDP. Questi strumenti usano il seguente approccio per misurare la latenza di rete tra due computer fisici o virtuali:

  1. Creare un canale di comunicazione bidirezionale tra i computer designandone uno come mittente e uno come ricevitore.
  2. Inviare e ricevere pacchetti in entrambe le direzioni e misurare il tempo di round trip (RTT).

Suggerimenti e procedure consigliate per ottimizzare la latenza di rete

Per ottimizzare le macchine virtuali per latenza di rete, osservare le raccomandazioni seguenti quando si creano le macchine virtuali:

  • Usare la versione più recente di Windows o Linux.
  • Abilitare la rete accelerata per migliorare le prestazioni.
  • Distribuire macchine virtuali all'interno di un gruppo di posizionamento di prossimità di Azure.
  • Creare macchine virtuali di dimensioni maggiori per ottenere prestazioni migliori.

Usare le procedure consigliate seguenti per testare e analizzare la latenza di rete:

  1. Non appena si completa la distribuzione, la configurazione e l'ottimizzazione delle macchine virtuali di rete, prendere misure di latenza di rete di base tra le macchine virtuali distribuite per stabilire i benchmark.

  2. Testare gli effetti sulla latenza di rete della modifica di uno dei componenti seguenti:

    • Sistema operativo o software dello stack di rete, incluse le modifiche alla configurazione.
    • Metodo di distribuzione della macchina virtuale, ad esempio la distribuzione in una zona di disponibilità o in un gruppo di posizionamento di prossimità (PPG).
    • Proprietà della macchina virtuale, ad esempio Rete accelerata o modifiche alle dimensioni.
    • Configurazione della rete virtuale, ad esempio il routing o il filtro delle modifiche.
  3. Confrontare sempre i nuovi risultati del test con la baseline o con i risultati più recenti del test prima delle modifiche controllate.

  4. Ripetere i test ogni volta che si osservano o si distribuiscono le modifiche.

Testare le macchine virtuali con Latte o SockPerf

Usare le procedure seguenti per installare e testare la latenza di rete con Latte per Windows o SockPerf per Linux.

Installare Latte e configurare le macchine virtuali

  1. Scaricare la versione più recente di latte.exe in entrambe le macchine virtuali in una cartella separata, ad esempio c:\tools.

  2. Nella macchina virtuale ricevente creare una regola di Windows Defender Firewall allow per consentire l'arrivo del traffico Latte. È più facile consentire il programma latte.exe in base al nome che consentire porte TCP in ingresso specifiche. Nel comando sostituire il <path> segnaposto con il percorso scaricato latte.exe , ad esempio c:\tools\.

    netsh advfirewall firewall add rule program=<path>latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY
    

Eseguire Latte nelle macchine virtuali

Eseguire latte.exe dalla riga di comando di Windows, non da PowerShell.

  1. Nella macchina virtuale ricevente eseguire il comando seguente, sostituendo i <receiver IP address>segnaposto , <port>e <iterations> con i propri valori.

    latte -a <receiver IP address>:<port> -i <iterations>
    
    • Circa 65.000 iterazioni sono sufficienti per restituire risultati rappresentativi.
    • Qualsiasi numero di porta disponibile è corretto.

    L'esempio seguente mostra il comando per una macchina virtuale con un indirizzo IP di 10.0.0.4:

    latte -a 10.0.0.4:5005 -i 65100

  2. Nella macchina virtuale mittente eseguire lo stesso comando del ricevitore, ad eccezione -c dell'aggiunta per indicare la macchina virtuale client o mittente. Sostituire di nuovo i <receiver IP address>segnaposto , <port>e <iterations> con i propri valori.

    latte -c -a <receiver IP address>:<port> -i <iterations>
    

    Ad esempio:

    latte -c -a 10.0.0.4:5005 -i 65100

  3. Attendere i risultati. A seconda della distanza tra le macchine virtuali, il test potrebbe richiedere alcuni minuti. Prendere in considerazione l'avvio con un minor numero di iterazioni per verificare l'esito positivo prima di eseguire test più lunghi.

Passaggi successivi