Test delle prestazioni di un servizio cloudTesting the performance of a cloud service

PanoramicaOverview

È possibile testare le prestazioni di un servizio cloud nei modi seguenti:You can test the performance of a cloud service in the following ways:

Scelta di un metodo di test delle prestazioniChoosing a performance testing method

Usare la diagnostica di Azure per raccogliere:Use Azure Diagnostics to collect:

  • Statistiche su pagine Web o servizi, ad esempio richieste e connessioni.Statistics on web pages or services, such as requests and connections.
  • Statistiche sui ruoli, come la frequenza con cui un ruolo viene riavviato.Statistics on roles, such as how often a role is restarted.
  • Informazioni generali sull'utilizzo della memoria, ad esempio la percentuale di tempo impiegato dal garbage collector o la memoria di un ruolo in esecuzione.Overall information about memory usage, such as the percentage of time that the garbage collector takes or the memory set of a running role.

Usare il profiler di Visual Studio per:Use the Visual Studio profiler to:

  • Determinare le funzioni che richiedono più tempo.Determine which functions take the most time.
  • Misurare la quantità di tempo richiesta da ogni parte di un programma di calcolo intensivo.Measure how much time each part of a computationally intensive program takes.
  • Confrontare rapporti dettagliati delle prestazioni per due versioni di un servizio.Compare detailed performance reports for two versions of a service.
  • Analizzare l'allocazione della memoria in modo più dettagliato rispetto al livello delle singole allocazioni di memoria.Analyze memory allocation in more detail than the level of individual memory allocations.
  • Analizzare i problemi di concorrenza nel codice multithreading.Analyze concurrency problems in multithreaded code.

Quando si usa il profiler, è possibile raccogliere dati quando un servizio cloud viene eseguito localmente o in Azure.When you use the profiler, you can collect data when a cloud service runs locally or in Azure.

Raccogliere localmente dati della profilatura per:Collect profiling data locally to:

  • Test delle prestazioni di una parte di un servizio cloud, ad esempio l'esecuzione di un ruolo di lavoro specifico che non richiede un carico simulato realistico.Test the performance of a part of a cloud service, such as the execution of specific worker role, that doesn’t require a realistic simulated load.
  • Test delle prestazioni di un servizio cloud in isolamento, in condizioni controllate.Test the performance of a cloud service in isolation, under controlled conditions.
  • Test delle prestazioni di un servizio cloud prima della distribuzione in Azure.Test the performance of a cloud service before you deploy it to Azure.
  • Test delle prestazioni di un servizio cloud privatamente, senza interferire con le distribuzioni esistenti.Test the performance of a cloud service privately, without disturbing the existing deployments.
  • Test delle prestazioni del servizio senza incorrere in spese per l'esecuzione in Azure.Test the performance of the service without incurring charges for running in Azure.

Raccogliere dati della profilatura in Azure per:Collect profiling data in Azure to:

  • Test delle prestazioni di un servizio cloud con un carico simulato o reale.Test the performance of a cloud service under a simulated or real load.
  • Usare il metodo di strumentazione di raccolta dei dati di profilatura, come descritto più avanti in questo argomento.Use the instrumentation method of collecting profiling data, as this topic describes later.
  • Test delle prestazioni del servizio nello stesso ambiente in cui il servizio viene eseguito in produzione.Test the performance of the service in the same environment as when the service runs in production.

In genere si simula un carico per testare i servizi cloud in condizioni normali o di sovraccarico.You typically simulate a load to test cloud services under normal or stress conditions.

Profilatura di un servizio cloud in AzureProfiling a cloud service in Azure

Quando si pubblica un servizio cloud da Visual Studio, è possibile eseguire la profilatura del servizio e specificare le impostazioni di profilatura che forniscono le informazioni desiderate.When you publish your cloud service from Visual Studio, you can profile the service and specify the profiling settings that give you the information that you want. Viene avviata una sessione di profilatura per ogni istanza di un ruolo.A profiling session is started for each instance of a role. Per altre informazioni su come pubblicare un servizio da Visual Studio, vedere Pubblicazione in un servizio cloud di Azure da Visual Studio.For more information about how to publish your service from Visual Studio, see Publishing to an Azure Cloud Service from Visual Studio.

Per altre informazioni sulla profilatura delle prestazioni in Visual Studio, vedere Guida per principianti alla profilatura delle prestazioni e Analisi delle prestazioni dell'applicazione mediante strumenti di profilatura.To understand more about performance profiling in Visual Studio, see Beginners Guide to Performance Profiling and Analyzing Application Performance by Using Profiling Tools.

Nota

Quando si pubblica il servizio cloud è possibile abilitare o IntelliTrace o la profilatura.You can enable either IntelliTrace or profiling when you publish your cloud service. Non è possibile abilitare entrambi.You can't enable both.

Metodi di raccolta del profilerProfiler collection methods

È possibile usare metodi di raccolta diversi per la profilatura, in base ai problemi delle prestazioni:You can use different collection methods for profiling, based on your performance issues:

  • Campionamento CPU : questo metodo consente di raccogliere statistiche dell'applicazione utili per l'analisi iniziale dei problemi relativi all'utilizzo della CPU.CPU sampling - This method collects application statistics that are useful for initial analysis of CPU utilization issues. Campionamento CPU è il metodo consigliato per iniziare la maggior parte delle indagini sulle prestazioni.CPU sampling is the suggested method for starting most performance investigations. Esiste un impatto minimo sull'applicazione di cui si esegue la profilatura quando si raccolgono dati di campionamento CPU.There is a low impact on the application that you are profiling when you collect CPU sampling data.
  • Strumentazione : questo metodo consente di raccogliere dati dettagliati sui tempi utili per l'analisi mirata e per l'analisi dei problemi relativi alle prestazioni di input/output.Instrumentation -This method collects detailed timing data that is useful for focused analysis and for analyzing input/output performance issues. Il metodo della strumentazione registra ogni voce, uscita e chiamata di funzione delle funzioni di un modulo durante l'esecuzione di una profilatura.The instrumentation method records each entry, exit, and function call of the functions in a module during a profiling run. Questo metodo è utile per raccogliere informazioni dettagliate sui tempi per una sezione del codice e per comprendere l'impatto delle operazioni di input e output sulle prestazioni dell'applicazione.This method is useful for gathering detailed timing information about a section of your code and for understanding the impact of input and output operations on application performance. Questo metodo è disabilitato per un computer che esegue un sistema operativo a 32 bit.This method is disabled for a computer running a 32-bit operating system. Questa opzione è disponibile solo quando si esegue il servizio cloud in Azure, non in locale nell'emulatore di calcolo.This option is available only when you run the cloud service in Azure, not locally in the compute emulator.
  • Allocazione della memoria .NET : questo metodo raccoglie dati sull'allocazione della memoria .NET Framework usando il metodo di profilatura del campionamento..NET Memory Allocation - This method collects .NET Framework memory allocation data by using the sampling profiling method. I dati raccolti includono il numero e la dimensione degli oggetti allocati.The collected data includes the number and size of allocated objects.
  • Concorrenza : questo metodo raccoglie dati sui conflitti delle risorse e dati di esecuzione dei thread e dei processi utili per l'analisi delle applicazioni multithread e multiprocesso.Concurrency - This method collects resource contention data, and process and thread execution data that is useful in analyzing multi-threaded and multi-process applications. Il metodo di concorrenza raccoglie i dati per ogni evento che blocca l'esecuzione del codice, ad esempio quando un thread attende che l'accesso bloccato a una risorsa dell'applicazione venga liberato.The concurrency method collects data for each event that blocks execution of your code, such as when a thread waits for locked access to an application resource to be freed. Questo metodo è utile per l'analisi di applicazioni multithread.This method is useful for analyzing multi-threaded applications.
  • È inoltre possibile abilitare Profilatura interazione tra livelli, che fornisce informazioni aggiuntive sui tempi di esecuzione delle chiamate ADO.NET sincrone nelle funzioni di applicazioni multilivello che comunicano con uno o più database.You can also enable Tier Interaction Profiling, which provides additional information about the execution times of synchronous ADO.NET calls in functions of multi-tiered applications that communicate with one or more databases. È possibile raccogliere dati dell’interazione tra livelli con qualsiasi metodo di profilatura.You can collect tier interaction data with any of the profiling methods. Per altre informazioni sulla profilatura dell'interazione tra livelli, vedere Visualizzazione Interazioni tra livelli.For more information about tier interaction profiling, see Tier Interactions View.

Configurazione delle impostazioni di profilaturaConfiguring profiling settings

La figura seguente illustra come configurare le impostazioni di profilatura dalla finestra di dialogo Pubblica l'applicazione Azure.The following illustration shows how to configure your profiling settings from the Publish Azure Application dialog box.

Configurare le impostazioni di profilatura

Nota

Per attivare la casella di controllo Abilita profilatura , è necessario che il profiler sia installato nel computer locale usato per pubblicare il servizio cloud.To enable the Enable profiling check box, you must have the profiler installed on the local computer that you are using to publish your cloud service. Per impostazione predefinita, il profiler viene installato quando si installa Visual Studio.By default, the profiler is installed when you install Visual Studio.

Per configurare le impostazioni di profilaturaTo configure profiling settings

  1. In Esplora soluzioni aprire il menu di scelta rapida per il progetto Azure e quindi scegliere Pubblica.In Solution Explorer, open the shortcut menu for your Azure project, and then choose Publish. Per altre informazioni su come pubblicare un servizio cloud, vedere Pubblicazione di un servizio cloud con gli strumenti di Azure.For detailed steps about how to publish a cloud service, see Publishing a cloud service using the Azure tools.
  2. Nella finestra di dialogo Pubblica l'applicazione Azure scegliere la scheda Impostazioni avanzate.In the Publish Azure Application dialog box, chose the Advanced Settings tab.
  3. Per abilitare la profilatura, selezionare la casella di controllo Abilita profilatura .To enable profiling, select the Enable profiling check box.
  4. Per configurare le impostazioni di profilatura, scegliere il collegamento ipertestuale Impostazioni .To configure your profiling settings, choose the Settings hyperlink. Viene visualizzata la finestra di dialogo Impostazioni di profilatura.The Profiling Settings dialog box appears.
  5. Dai pulsanti di opzione Specificare il metodo di analisi da utilizzare scegliere il tipo di analisi necessario.From the What method of profiling would you like to use option buttons, choose the type of profiling that you need.
  6. Per raccogliere i dati di profilatura dell'interazione tra livelli, selezionare la casella di controllo Abilita profilatura interazione tra livelli .To collect the tier interaction profiling data, select the Enable Tier Interaction Profiling check box.
  7. Per salvare le impostazioni, fare clic su OK .To save the settings, choose the OK button.

    Quando si pubblica l'applicazione, queste impostazioni vengono usate per creare la sessione di profilatura per ogni ruolo.When you publish this application, these settings are used to create the profiling session for each role.

Visualizzare i rapporti sulla profilaturaViewing Profiling Reports

Viene creata una sessione di profilatura per ogni istanza di un ruolo nel servizio cloud.A profiling session is created for each instance of a role in your cloud service. Per visualizzare i rapporti sulla profilatura di ogni sessione da Visual Studio, è possibile visualizzare la finestra Esplora server e quindi scegliere il nodo di calcolo di Azure per selezionare un'istanza di un ruolo.To view your profiling reports of each session from Visual Studio, you can view the Server Explorer window and then choose the Azure Compute node to select an instance of a role. È quindi possibile visualizzare il rapporto sulla profilatura, come illustrato nella figura seguente.You can then view the profiling report as shown in the following illustration.

Visualizzare il rapporto della profilatura da Azure

Per visualizzare i rapporti della profilaturaTo view profiling reports

  1. Per visualizzare la finestra Esplora server in Visual Studio, nella barra dei menu scegliere Visualizza, Esplora server.To view the Server Explorer window in Visual Studio, on the menu bar choose View, Server Explorer.
  2. Scegliere il nodo di calcolo di Azure e quindi scegliere il nodo di distribuzione di Azure per il servizio cloud selezionato per la profilatura durante la pubblicazione da Visual Studio.Choose the Azure Compute node, and then choose the Azure deployment node for the cloud service that you selected to profile when you published from Visual Studio.
  3. Per visualizzare i rapporti sulla profilatura per un'istanza, scegliere il ruolo nel servizio, aprire il meno di scelta rapida per un'istanza specifica, quindi scegliere Visualizza rapporto sulla profilatura.To view profiling reports for an instance, choose the role in the service, open the shortcut menu for a specific instance, and then choose View Profiling Report.

    Il report, un file con estensione vsp, viene ora scaricato da Azure e lo stato del download viene visualizzato nel log attività di Azure.The report, a .vsp file, is now downloaded from Azure, and the status of the download appears in the Azure Activity Log. Al termine del download, il report sulla profilatura viene visualizzato in una scheda nell'editor per Visual Studio con nome .vsp.When the download completes, the profiling report appears in a tab in the editor for Visual Studio named .vsp. Vengono visualizzati i dati di riepilogo per il report.Summary data for the report appears.

  4. Per visualizzare viste diverse del report, nell'elenco Vista corrente, scegliere il tipo di visualizzazione che si desidera.To display different views of the report, in the Current View list, choose the type of view that you want. Per altre informazioni, vedere Visualizzazioni dei rapporti degli strumenti di profilatura.For more information, see Profiling Tools Report Views.

Passaggi successiviNext steps

Debug di servizi cloudDebugging Cloud Services

Pubblicazione in un servizio cloud di Azure da Visual StudioPublishing to an Azure Cloud Service from Visual Studio