Panoramica dello scenario di test
Questo argomento fornisce una panoramica dell'applicazione di test; una descrizione della metodologia di test usata ed elenca gli indicatori di prestazioni chiave (KPI) acquisiti durante il test di carico.
Testare l'applicazione
È stata usata un'applicazione di richiesta-risposta sincrona per confrontare le prestazioni di BizTalk Server in esecuzione in Hyper-V con BizTalk Server in esecuzione su hardware fisico. Questa applicazione è stata usata per illustrare le prestazioni di una soluzione BizTalk Server ottimizzata per la bassa latenza. La messaggistica a bassa latenza è fondamentale per determinati scenari, ad esempio l'online banking in cui un client invia una richiesta e prevede un messaggio di risposta entro un intervallo molto breve (ad esempio < 3 secondi).
La figura seguente illustra l'architettura di alto livello usata. Visual Studio Team System (VSTS) 2008 Test Load Agent ha richiamato una classe di test personalizzata, che ha usato il trasporto WCF per generare il carico su BizTalk Server. L'applicazione BizTalk Server in questo scenario è stata esposta tramite un percorso di ricezione della richiesta di WCF-BasicHttp. VsTS 2008 Test Load Agent è stato usato come client di test grazie alla grande flessibilità offerta, inclusa la possibilità di configurare il numero di messaggi inviati in totale, il numero di thread simultanei e l'intervallo di sospensione tra le richieste inviate.
Diversi computer dell'agente di carico di test vsTS 2008 possono essere eseguiti insieme per simulare modelli di carico reali. Per questi test, i computer dell'agente di carico di test vsTS 2008 sono stati guidati da un singolo computer controller dell'agente di carico di test vsTS 2008 che esegue anche BizUnit 3.0. Di conseguenza, è stato inviato un carico coerente ai computer fisici e virtuali BizTalk Server. Per altre informazioni sull'uso di VSTS 2008 Test Edition per generare carico simulato per i test, vedere https://go.microsoft.com/fwlink/?LinkID=132311.
Application Testare l'architettura dell'applicazione
Un WCF-BasicHttp o un percorso di ricezione WCF-Custom Request-Response riceve un nuovo calculatorRequest da un computer dell'agente di carico di test.
Il componente disassembler XML promuove l'elemento Method all'interno del documento xml CalculatorRequest. L'agente messaggi invia il messaggio in arrivo al database MessageBox (BizTalkMsgBoxDb).
La richiesta in ingresso avvia una nuova istanza di LogicalPortsOrchestration. Questa orchestrazione usa una porta diretta associata per ricevere i messaggi CalculatorRequest con la proprietà alzata di livello metodo = "LogicalPortsOrchestration".
LogicalPortsOrchestration usa un ciclo per recuperare le operazioni e per ogni elemento richiama il servizio Web WCF calcolatrice downstream usando una porta logica Solicit-Response. Il messaggio di richiesta per il servizio Web WCF Calcolatrice viene creato usando un componente helper e pubblicato in MessageBox.
Il messaggio di richiesta viene utilizzato da una porta di trasmissione WCF-BasicHttp.
La porta di trasmissione WCF-BasicHttp richiama uno dei metodi (Add, Subtract, Multiply, Divide) esposti dal servizio Web WCF Calculator.
Il servizio Web WCF Calcolatrice restituisce un messaggio di risposta.
Il messaggio di risposta viene pubblicato in MessageBox.
Il messaggio di risposta viene restituito al chiamante LogicalPortsOrchestration. L'orchestrazione ripete questo modello per ogni operazione all'interno del documento xml CalculatorRequest in ingresso.
LogicalPortsOrchestration pubblica il messaggio CalculatorResponse in MessageBox.
Il messaggio di risposta viene recuperato dal Request-Response WCF-BasicHttp Percorso di ricezione.
Il messaggio di risposta viene restituito al computer dell'agente di test di carico.
Di seguito è riportato uno screenshot dell'orchestrazione usata durante il test di carico:
Nota
Ai fini dell'illustrazione, l'orchestrazione illustrata di seguito è una versione semplificata dell'orchestrazione effettivamente usata durante il test di carico. L'orchestrazione usata durante il test di carico includeva più ambiti, logica di gestione degli errori e tipi di porta aggiuntivi.
Testare l'orchestrazione delle applicazioni
Metodologia di test
I test delle prestazioni comportano molte attività, che se eseguite manualmente sono ripetitive, monotono e soggette a errori. Per migliorare l'efficienza dei test e garantire la coerenza tra le esecuzioni dei test, è stata usata Visual Studio 2013 Team System (VSTS) Test Edition con BizUnit 3.0 per automatizzare le attività necessarie durante il processo di test. I computer dell'agente di carico di test vsTS 2008 sono stati usati come client di test per generare il carico dei messaggi sul sistema e gli stessi tipi di messaggio sono stati usati in ogni esecuzione del test per migliorare la coerenza. Seguendo questo processo viene fornito un set coerente di dati per ogni esecuzione di test. Per altre informazioni su BizUnit 3.0, vedere https://go.microsoft.com/fwlink/?LinkID=85168. Per altre informazioni su Visual Studio 2013 Team System Test Edition, vedere https://go.microsoft.com/fwlink/?LinkID=141387.
I passaggi seguenti sono stati automatizzati:
Arrestare gli host BizTalk.
Pulire le directory di test.
Riavviare IIS.
Pulire il database messagebox BizTalk Server.
Riavviare SQL Server.
Cancellare i registri eventi.
Creare una cartella dei risultati del test per ogni esecuzione per archiviare le metriche delle prestazioni e i file di log associati.
Avviare host BizTalk.
Caricare i contatori Monitor prestazioni.
Riscaldamento dell'ambiente BizTalk con un carico ridotto.
Invio tramite esecuzione rappresentativa.
Scrivere i log delle prestazioni in una cartella dei risultati.
Raccogliere i log dell'applicazione e scrivere in un file .csv nella cartella dei risultati.
Eseguire lo strumento Analisi delle prestazioni dei log, Relog e Log Parser sui log raccolti per produrre statistiche, grafici e report. Per altre informazioni su PAL, Relog e Log Parser, vedere Appendice D: Strumenti per la misurazione delle prestazioni.
Nota
Tutto il rilevamento è stato disabilitato e il processo BizTalk Server SQL Server Agent è stato disabilitato durante il test.
Per garantire che i risultati di questo lab siano stati in grado di fornire un confronto delle prestazioni di BizTalk Server in un ambiente fisico e Hyper-V, le metriche delle prestazioni e i log sono stati raccolti in una posizione centralizzata per ogni esecuzione di test.
Il client di test è stato usato per creare una directory dei risultati univoca per ogni esecuzione di test. Questa directory contiene tutti i log delle prestazioni, i registri eventi e i dati associati necessari per il test. Questo approccio fornisce informazioni necessarie quando è necessaria l'analisi retrospettiva delle esecuzioni di test precedenti. Al termine di ogni test, i dati non elaborati sono stati compilati in un set di risultati coerenti e indicatori di prestazioni chiave (KPI). La raccolta di set di risultati coerenti per le macchine fisiche e virtualizzate ha fornito i punti di confronto necessari tra le diverse esecuzioni di test e ambienti diversi. I dati raccolti includono:
Ambiente– Per registrare l'ambiente in cui è stato eseguito il test, BizTalk Server su hardware fisico o BizTalk Server in Hyper-V.
Numero di esecuzione test : Per identificare in modo univoco ogni esecuzione di test
Test case : Per registrare l'architettura della soluzione BizTalk Server usata durante i test. (Ad esempio, orchestrazione con porte logiche e orchestrazione tramite invii inline)
Data– Per registrare la data e l'ora di esecuzione del test
Ora di inizio : Come indicato dal primo agente di test di carico VSTS avviato
Ora arrestata: Come indicato dall'ultimo agente di test di carico VSTS da completare
Durata del test in minuti : Per registrare la durata del test.
Messaggi inviati in totale : Per registrare il numero totale di messaggi inviati dai computer dell'agente di carico ai computer BizTalk Server durante il test.
Messaggi inviati al secondo : Per registrare i messaggi inviati al secondo dai computer dell'agente di carico ai computer BizTalk Server durante il test.
Latenza media del client : Per registrare l'intervallo medio di tempo tra il momento in cui i client dell'agente di carico di test hanno avviato una richiesta a e ricevuto una risposta dai computer BizTalk Server durante il test di carico.
Request-Response Duration Average (ms) – Come segnalato dal contatore BizTalk:Messaging Latency\Request-Response Latency (sec) Monitor prestazioni per BizTalkServerIsolatedHost
Nota
In cui sono stati eseguiti più host BizTalk virtualizzati, è stata usata una media di questi contatori calcolati dai log.
Orchestrazioni completate al secondo : Come indicato dal contatore orchestrazioni XLANG/s (BizTalkServerApplication)\Orchestrations completed/sec Monitor prestazioni. Questo contatore fornisce una buona misura della velocità effettiva della soluzione BizTalk Server.
% dei messaggi elaborati < 3 secondi: per registrare il numero totale di messaggi elaborati entro 3 secondi durante il test.
VsTS 2008 Load Test è stato usato per generare un carico coerente in tutti i test. Durante il test sono state modificate le impostazioni di esecuzione del test e il modello di carico seguenti per regolare il profilo di carico di ogni test:
Impostazioni di esecuzione dei test
L'impostazione di esecuzione del test seguente è stata modificata a seconda del test eseguito:
Durata esecuzione : Specifica per quanto tempo viene eseguito il test.
Impostazioni esecuzione test
Impostazioni del modello di test
Le impostazioni del modello di test seguenti sono state modificate a seconda del test eseguito:
Modello– Specifica la modalità di regolazione del carico utente simulato durante un test di carico. I modelli di carico sono Costanti, Step o Goal . Tutti i test di carico eseguiti sono costanti o passaggi.
Nota
Tutti i test eseguiti ai fini di questa guida usano un modello di carico costante o un modello di carico passaggio . I modelli di carico costanti e i modelli di carico passo forniscono le funzionalità seguenti:
- Modello di carico costante : Il modello di carico è lo stesso per la durata del test, il numero di utenti simulati inizia a un livello predefinito e non cambia.
- Modello di carico passo - Il modello di carico è aumentato durante l'esecuzione del test; il numero di utenti simulati inizia a un livello predefinito e viene incrementato da una quantità predefinita a intervalli predefiniti per la durata del test.
- Modello di carico costante : Il modello di carico è lo stesso per la durata del test, il numero di utenti simulati inizia a un livello predefinito e non cambia.
Conteggio utenti costanti (modello di carico costante) - Numero di utenti virtuali che generano il carico sull'indirizzo dell'endpoint specificato nel file app.config del progetto Test di carico di Visual Studio. Questo valore viene specificato nelle impostazioni del modello di carico usate per il test di carico.
Conteggio utenti iniziale (modello di carico passaggio) - Numero di utenti virtuali che generano il carico sull'indirizzo dell'endpoint specificato all'inizio di un test del modello di carico passaggio. Questo valore viene specificato nelle impostazioni del modello di carico usate per il test di carico.
Numero massimo di utenti (modello di carico passaggio) - Numero di utenti virtuali che generano il carico rispetto all'indirizzo dell'endpoint specificato alla fine di un test del modello di carico passaggio. Questo valore viene specificato nelle impostazioni del modello di carico usate per il test di carico.
Durata passaggio (modello di carico passo) - Numero di secondi che gli utenti virtuali generano il carico sull'indirizzo dell'endpoint specificato per un passaggio di test di carico.
Conteggio utenti passaggio (modello di carico passo) - Numero di utenti virtuali da aumentare in ogni passaggio quando si usa un modello di carico passo.
Impostazioni modello di test
Per altre informazioni sull'uso dei test di carico in Visual Studio 2013, vedere l'argomento Uso dei test di carico nella documentazione di Visual Studio 2013 Team System in https://go.microsoft.com/fwlink/?LinkId=141486.
Indicatori di prestazioni chiave misurati durante i test
I contatori di Monitor prestazioni seguenti sono stati acquisiti come indicatori di prestazioni chiave (KPI) per tutte le esecuzioni di test:
Nota
Per altre informazioni sulla valutazione delle prestazioni con contatori monitoraggio prestazioni, vedere Elenco di controllo: Misurazione delle prestazioni in Hyper-V.
indicatore KPI BizTalk Server
Documenti elaborati al secondo - Misurata dal contatore BizTalk:Messaging/Documents elaborato/Sec .
Latenza– Misurata come restituita dalla Load Test Controller VSTS 2008.
indicatore KPI SQL Server
SQL Server utilizzo del processore: misurata dal contatore SQL\Processor(Total)\%Processor Time. Questo contatore misura l'utilizzo della CPU dell'elaborazione SQL Server nel computer SQL Server.
Eseguire l'elaborazione dei comandi SQL : Misurata dal contatore \SQL Server:STATISTICHE SQL\Richieste batch/sec. Questo contatore misura il numero di batch di comandi Transact-SQL ricevuti al secondo. Questo contatore viene usato per misurare la velocità effettiva nel computer SQL Server.
KPI di rete
BizTalk Server velocità effettiva di rete: misurata dal contatore del monitoraggio delle prestazioni \Network Interface(*)\Bytes Total/sec nei computer BizTalk Server.
SQL Server velocità effettiva di rete: misurata dall'Load Test Controller di SQL Network Interface\Bytes Total/sec (Avg) restituita dall'Load Test Controller VSTS 2008.
INDICATORE KPI memoria
Memoria disponibile: Misurata dal contatore \Memory\Available Mbyte per i vari scenari.
Specifiche dell'infrastruttura fisica
Per ognuno dei server installati le impostazioni seguenti sono state modificate.
Per tutti i server:
Il file di paging è stato impostato su 1,5 volte la quantità di memoria fisica allocata. Il file di paging è stato impostato su una dimensione fissa garantendo che le dimensioni iniziali e i valori massimi siano identici in MB.
L'opzione "Regola per prestazioni ottimali" è stata selezionata dalla schermata Proprietà di sistema avanzate.
È stato verificato che il sistema fosse stato modificato per ottenere prestazioni ottimali dei servizi in background nella sezione Opzioni prestazioni delle proprietà di sistema.
Windows Server 2008 SP2 è stato installato come sistema operativo guest in ognuna delle macchine virtuali.
Windows Update è stato eseguito correttamente in tutti i server per installare gli aggiornamenti di sicurezza più recenti.
Per SQL Server:
SQL Server è stato installato in base alla guida all'installazione disponibile in https://go.microsoft.com/fwlink/?LinkId=141021.
SQL Server usato aveva le LUN SAN configurate in base alla tabella seguente. I file di database e log sono stati separati tra le LUN, come segue per ridurre le possibili contese di I/O del disco:
Il volume Data_Sys è stato usato per archiviare tutti i file di database (inclusi i database di sistema e BizTalk) tranne i database MessageBox e TempDb.
Il volume Log_Sys è stato usato per archiviare tutti i file di log (inclusi i database di sistema e di BizTalk Server) tranne i database MessageBox e TempDb.
Il volume Data_TempDb è stato usato per archiviare il file di database TempDb.
Il volume Logs_TempDb è stato usato per archiviare il file di log tempDb.
Il file di database MessageBox è stato archiviato nel volume Data_BtsMsgBox e il file di log è stato archiviato nel volume Log_BtsMsgBox.
Oltre a questo, è stato fornito un LUN separato per il file di log MSDTC. Nei sistemi BizTalk con velocità effettiva elevata, l'attività del file di log MSDTC è stata mostrata per causare un collo di bottiglia di I/O se si trova nella stessa unità fisica del sistema operativo.
Nome del volume File DIMENSIONI LUN GB Dimensioni partizione host GB Dimensioni del cluster Data_Sys File di dati MASTER e MSDB 10 10 64 KB Logs_Sys File di log MASTER e MSDB 10 10 64 KB Data_TempDb File di dati TempDB 50 50 64 KB Logs_TempDb File di log tempDB 50 50 64 KB Data_BtsMsgBox File di dati BizTalkMsgBoxDb 300 100 64 KB Logs_BtsMsgBox File di log BizTalkMsgBoxDb 100 100 64 KB Data_BAMPrimaryImport File di dati BAMPrimaryImport 10 10 64 KB Logs_BAMPrimaryImport File di log BAMPrimaryImport 10 10 64 KB Data_BizTalkDatabases Altri file di dati del database BizTalk 20 20 64 KB Logs_BizTalkDatabases Altri file di log del database BizTalk 20 20 64 KB N/D File di log MSDTC 5 5 N/D BizTalk Server è stato installato in base alle guide di installazione disponibili in https://go.microsoft.com/fwlink/?LinkId=128383.
Lo strumento BizTalk Server Best Practices Analyzer (BPA) è stato usato per eseguire la convalida della piattaforma dopo la configurazione del sistema. BizTalk Server(https://www.microsoft.com/download/details.aspx?id=43382).
Specifiche di virtualizzazione
È stato usato un singolo disco rigido virtuale fisso da 50 GB per ospitare il sistema operativo per ogni macchina virtuale Hyper-V.
I dischi rigidi virtuali fissi sono stati usati anziché dischi rigidi virtuali di dimensioni dinamiche perché allocano immediatamente lo spazio di archiviazione massimo per il disco rigido virtuale al file nell'unità in cui è ospitato. In questo modo si riduce la frammentazione del file VHD che si verifica nell'unità fisica in cui è ospitata, migliorando le prestazioni di I/O del disco.
Per configurare le macchine virtuali, è stata eseguita un'installazione di Windows Server 2008 SP2 a 64 bit in un singolo disco rigido virtuale. Dopo aver installato tutti gli aggiornamenti appropriati, la macchina virtuale di base è stata immagineta usando l'utilità sysprep installata con Windows Server 2008 SP2, nella directory %WINDIR%\system32\sysprep.
Questo disco rigido virtuale di base è stato quindi copiato e usato come base per tutte le macchine virtuali Hyper-V distribuite nell'ambiente. Sysprep è stato eseguito nell'immagine del disco rigido virtuale di base per reimpostare gli identificatori di sicurezza del sistema prima che tutti i file binari SQL Server o BizTalk Server siano stati distribuiti nel sistema.
Nota
L'esecuzione di Sysprep dopo BizTalk Server è stata installata e configurata nel server può essere eseguita tramite l'uso di un file di risposte Sysprep e di script forniti con BizTalk Server. Questi script di esempio sono progettati per l'uso con BizTalk Server installati solo nelle versioni a 32 bit e a 64 bit di Windows Server 2008 SP2. Per altre informazioni, vedere la documentazione online di BizTalk Server.
Il riferimento all'installazione automatica di Windows è disponibile all'indirizzo https://go.microsoft.com/fwlink/?LinkId=142364.
Vedere anche
Appendice C: Supporto di Hyper-V in BizTalk Server e SQL Server