Contatori delle prestazioni nei test di carico in Windows Azure

Quando si eseguono test di carico, in Visual Studio è possibile raccogliere dati dai contatori delle prestazioni (visualizzati di solito tramite Perfmon.exe). I contatori delle prestazioni sono specifici di ogni computer (ruolo di lavoro o ruolo Web) che ospita un sistema testato. Utilizzando Perfmon, è possibile specificare i processi da monitorare, inclusi i processi dell'applicazione. In questo argomento vengono illustrati i passaggi per registrare tali contatori durante l'esecuzione di un test di carico di Visual Studio in Windows Azure.

noteNota
In caso di registrazione dei contatori delle prestazioni, secondo quanto illustrato in questo articolo, i limiti della rete riducono la velocità effettiva di messaggi che possono essere ricevuti. In un scenario locale è possibile ad esempio registrare molti contatori con una frequenza di uno al secondo. Nello scenario descritto di seguito le latenze di rete impediscono prestazioni equivalenti. In pratica è pertanto opportuno ridurre il numero di contatori raccolti. Impostare inoltre la frequenza di raccolta su minimo 5 secondi. Per ulteriori informazioni sulla creazione di set di contatori, vedere Creazione di set di contatori delle prestazioni.

Questo argomento è una variante dello scenario di base descritto in Utilizzo di test di carico di Visual Studio nei ruoli di Windows Azure. In tale set di articoli viene descritto come gestire test di carico di Visual Studio in Windows Azure. Nello scenario della base, un progetto di test di carico genera traffico in un'applicazione Windows Azure e tutti i ruoli appartengono allo stesso gruppo di Windows Azure Connect. In questo argomento i ruoli di lavoro e il sistema sottoposto a test si trovano nello stesso gruppo Connect, ma vengono eseguiti in servizi ospitati diversi.

Autori: Sidney Higa e Paolo Salvatori.

Riconoscimenti: Jaime Alva Bravo.

Prerequisiti

Gli elementi seguenti sono necessari per abilitare l'acquisizione di contatori delle prestazioni.

  1. File eseguibile di installazione endpoint di Windows Azure Connect, Wacendpointpackage.exe.

    Vedere Per installare endpoint locali con Windows Azure Connect. Scaricare il file eseguibile per un utilizzo successivo.

  2. Token di attivazione di endpoint di Windows Azure.

    Seguire le istruzioni in Per installare endpoint locali con Windows Azure Connect per ottenere il token. Salvare il token che verrà recuperato successivamente.

Panoramica

I test di carico di Visual Studio sono costituiti da due parti logiche:

  1. Componenti del test di carico. I componenti includono il controller di test e gli agenti.

  2. Sistema sottoposto a test. L'applicazione sottoposta al test di carico.

Il sistema sottoposto a test e i componenti del test di carico possono essere distribuiti insieme in un sistema ospitato da Windows Azure. In tale scenario la comunicazione tra le parti è ottimale, in quanto nodi dell'agente possono comunicare direttamente con le istanze del ruolo che eseguono l'applicazione. Le parti possono essere distribuite nei sistemi ospitati separati utilizzando strumenti di Visual Studio, ma i contatori delle prestazioni non possono essere raccolti. Questa configurazione viene spiegata in un secondo momento.

In questo scenario il sistema sottoposto a test e i componenti del test di carico vengono eseguiti in servizi ospitati diversi, ma i contatori delle prestazioni devono essere raccolti. Sono presenti due servizi ospitati, uno per il controller di test e gli agenti e un secondo per il sistema sottoposto a test. È tuttavia ancora uno solo il gruppo di Windows Azure Connect utilizzato per abilitare comunicazione.

Agenti e sistema sottoposti a test in diversi servizi

Il metodo predefinito per creare un gruppo Connect consiste nell'utilizzare Visual Studio, tramite la casella di controllo Attiva Windows Azure Connect. Per ulteriori informazioni, vedere Utilizzo di Windows Azure Connect per creare reti virtuali. In questo scenario gli agenti e il sistema sottoposto a test vengono eseguiti in servizi diversi. I ruoli non possono pertanto comunicare tra di essi utilizzando il metodo predefinito (la casella di controllo non funziona). In base alla progettazione, Windows Azure Connect non consente la comunicazione tra istanze del ruolo eseguite in servizi ospitati diversi. La soluzione alternativa consiste nell'installare l'endpoint di Connect nei seguenti componenti:

  1. I ruoli di lavoro che ospitano gli agenti.

  2. I ruoli Web e/o di lavoro che ospitano il sistema sottoposto a test.

Poiché non viene utilizzata la casella di controllo, l'endpoint deve essere installato automaticamente tramite un altro processo, come descritto di seguito.

Installazione automatica dell'endpoint di Connect

Per abilitare la comunicazione tra i servizi ospitati, scaricare innanzitutto il file Wacendpointpackage.exe. Archiviare il file eseguibile con il progetto di Visual Studio contenente il ruolo di lavoro che ospita l'agente. Configurare quindi il ruolo di lavoro per installare automaticamente l'endpoint, come illustrato.

Per installare automaticamente un endpoint di Connect

  1. Copiare e incollare il file Wacendpointpackage.exe nel progetto di Visual Studio per il ruolo di lavoro che ospita un agente. Attenersi alla procedura seguente per configurare il ruolo di lavoro per installare automaticamente l'endpoint.

    1. Eseguire Visual Studio come Amministratore e aprire la soluzione contenente il progetto relativo al test di carico.

    2. In Esplora soluzioni incollare il file Wacendpointpackage.exe nel progetto di Visual Studio contenente il ruolo di lavoro che ospita un agente.

    3. In Esplora soluzioni fare clic con il pulsante destro del mouse sul file Wacendpointpackage.exe, quindi scegliere Proprietà.

    4. Nel riquadro Proprietà impostare la proprietà Azione di compilazione su Nessuno.

    5. Nel riquadro Proprietà assicurarsi che la proprietà Copia nella directory di output sia impostata su Copia sempre.

  2. Creare un file batch per l'esecuzione del file eseguibile dell'installazione.

    1. Creare un file denominato Startup.cmd.

    2. Copiare e incollare il codice seguente nel file. Sostituire <windows azure connect group activation token> con il token di attivazione per il gruppo Connect.

      Wacendpointpackage.exe /i  /s /m en-us /token <windows azure connect group activation token>
      
  3. Copiare e incollare il file Startup.cmd nel progetto di Visual Studio per il ruolo di lavoro che ospita l'agente. Impostare la proprietà Azione di compilazione del file su Nessuno. Impostare inoltre la proprietà Copia nella directory di output del file su Copia sempre.

  4. Configurare il ruolo di lavoro o Web per la gestione del file batch.

    1. Aprire il progetto Cloud di Azure contenente la definizione del servizio e i file di configurazione.

    2. Aprire il file ServiceDefinition.csdef.

    3. Nell'elemento <WebRole> che ospita l'agente aggiungere l'elemento <Runtime> e impostare il contesto di esecuzione su "privilegi elevati". Nell'elemento <Runtime> aggiungere l'elemento <Startup>. Aggiungere quindi l'elemento <Task> per eseguire il file batch in modalità con privilegi elevati. si seguito è riportato il codice completo:

      <Runtime executionContext="elevated"/>
      <Startup>
          <Task commandLine="setup\startup.cmd" executionContext="elevated" taskType="simple" />
      </Startup>    
      
      

La tecnica descritta viene comunemente utilizzata per installare software nei ruoli di lavoro e Web di Azure. Per ulteriori informazioni, vedere la pagina relativa al Avvio di attività prima dell'avvio di istanze del ruolo in Windows Azure.

Inizializzazione

Prima di passare alla sezione successiva, distribuire ed eseguire le macchine virtuali in Windows Azure. Le istanze in esecuzione sono necessarie per creare i set di contatori e abilitarne il mapping. Per ulteriori informazioni sulla distribuzione ed esecuzione di servizi ospitati in Azure, vedere Gestione temporanea di un'applicazione in Windows Azure.

Creazione di set di contatori delle prestazioni

Per creare set di contatori delle prestazioni, utilizzare gli strumenti di test di carico di Visual Studio.

Per creare un set di contatori delle prestazioni

  1. Aprire il progetto di Visual Studio contenente i componenti del test di carico.

  2. Aprire il progetto di test e il file del test di carico (* .loadtest).

  3. Fare clic con il pulsante destro del mouse sulla cartella Insiemi di contatori e fare clic su Aggiungi insieme di contatori personalizzati. Il nome predefinito è Custom1. Rinominare la cartella Insiemi di contatori, secondo le esigenze.

  4. Fare clic con il pulsante destro del mouse sulla nuova cartella dei contatori personalizzata e fare clic su Aggiungi contatori.

  5. Nella finestra di dialogo Seleziona contatori delle prestazioni selezionare il computer contenente il sistema sottoposta a test dall'elenco a discesa Computer. Il computer può essere un'istanza del ruolo in esecuzione in Windows Azure.

  6. Dall'elenco a discesa della categoria Prestazioni selezionare il contatore delle prestazioni da monitorare e fare clic su OK.

  7. Ripetere i passaggi precedenti per aggiungere i contatori necessari.

Dopo avere creato il set di contatori, creare un mapping per ogni ruolo in esecuzione.

Per creare un mapping dei contatori delle prestazioni

  1. Nel file del test di carico (* .loadtest), aprire la cartella Impostazioni di esecuzione.

  2. Nella cartella Mapping insiemi di contatori individuare i nomi delle istanze di Azure in esecuzione. Le macchine virtuali hanno un nome che in genere inizia con "RD". È presente una macchina virtuale per ogni istanza del ruolo di lavoro dell'agente.

  3. Fare clic con il pulsante destro del mouse sul nodo del computer e scegliere Gestisci insiemi di contatori.

  4. Nella finestra di dialogo Gestisci insiemi di contatori selezionare il set di contatori personalizzato per aggiungerlo.

Il set di contatori personalizzato ora è mappato a ogni ruolo di lavoro che esegue un agente.

Abilitazione della sicurezza pass-through

Desktop remoto è la modalità standard per accedere a un'istanza del ruolo. È possibile configurare ruoli per l'utilizzo di Desktop remoto con gli strumenti di Visual Studio. Lo strumento di Visual Studio crea un certificato con un nome utente e una password specificati. Per ulteriori informazioni, vedere Utilizzo del Desktop remoto con i ruoli Windows Azure. Quando si utilizza questo metodo, il nome utente viene aggiunto automaticamente al gruppo Administrator in tutti i ruoli configurati per l'utilizzo di Desktop remoto. Lo stesso utente appartenere al gruppo Administrators sui computer del ruolo di lavoro. Ciò significa che lo stesso nome utente e la stessa password vengono utilizzati per accedere agli agenti e al sistema sottoposto a test. Per effettuare questa operazione, creare un utente locale e utilizzare tale identità per distribuire il servizio ospitato del test di carico. Per controllare se la configurazione è corretta, utilizzare Desktop remoto per esaminare il gruppo Administrators in un ruolo di lavoro in esecuzione. Controllare che lo stesso utente appartenga al gruppo. Per ulteriori informazioni sulla creazione dell'utente locale per test di carico, vedere "Creazione di un utente locale per gestire un controller di test del carico" nell'argomento Pubblicazione del test di carico in Windows Azure.


Data di compilazione:

2013-07-25

Aggiunte alla community

Mostra: