Passaggio 4: Configurare l'ambiente BizTalk Server per il test di carico
Questo argomento fornisce informazioni per la creazione delle BizTalk Server posizioni di ricezione, porte di ricezione e porte di invio necessarie per eseguire il codice di esempio descritto nel passaggio 1: Creare un unit test per inviare documenti a BizTalk Server e passaggio 3: Creare un test di carico per eseguire più unit test contemporaneamente.
Configurare BizTalk Server Ambiente per i test di carico
Come descritto nell'argomento Passaggio 3: Creare un test di carico per eseguire più unit test simultaneamente, il test di carico BTS_Messaging_Step è configurato per eseguire i unit test BTSMessaging e BTSMessaging2. A sua volta, questi unit test caricano una copia del messaggio C:\Projects\LoadTest\BTSLoad\TestMessages\TestXmlDocument.xml e lo inviano agli endpoint BTSMessagingEP e BTSMessagingEP2 come definito nella sezione seguente del file di configurazione dell'applicazione del progetto (app.config):
<-- BTSMessagingEP --><endpoint address="net.tcp://BizTalk Server Computer:8123/btsloadtest" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="System.ServiceModel.Channels.IRequestChannel" name="BTSMessagingEP" /><endpoint address="net.tcp://BizTalk Server ComputerBinding="netTcpBinding" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="System.ServiceModel.Channels.IRequestChannel" name="BTSMessagingEP2" />
Nota
Come indicato in precedenza, BizTalk Server Computer è un segnaposto per i nomi di computer effettivi BizTalk Server o, nel caso in cui i computer BizTalk Server siano configurati come membri di un cluster NLB (Network Load Balanceing); BizTalk Server Computer è un segnaposto per il nome o l'indirizzo del server virtuale NLB corrispondente.
A scopo di questo esempio, sono stati usati due computer BizTalk Server e il database della finestra di messaggio BizTalk Server era in un computer remoto SQL Server.
Creare host di invio e ricezione BizTalk Server
Seguire la procedura descritta nell'argomento Documentazione BizTalk Server Come creare un nuovo host per creare un host BizTalk Server "Send" per i gestori di schede di trasmissione e invio. Configurare l'host con le proprietà seguenti:
Proprietà | Valore |
---|---|
Nome | TxHost |
Tipo | In-Process |
Consenti rilevamento host | Assicurarsi che questa casella non sia selezionata. |
Considerato attendibile in base all'autenticazione | Assicurarsi che questa casella non sia selezionata. |
Solo 32 bit | Assicurarsi che questa casella non sia selezionata. |
Imposta come host predefinito del gruppo | Assicurarsi che questa casella non sia selezionata. |
Gruppo di Windows | Il gruppo di Windows usato per controllare l'accesso a questo host e alle istanze host associate. Il gruppo Window creato per l'host in-process predefinito è denominato <Nome computer\Utenti applicazioni BizTalk (per un singolo server BizTalk Server installazione) o Domain Name\BizTalk Application Users (per un'installazione di più server BizTalk Server, che richiede l'uso di gruppi di> dominio).>< Nota:<Nome computer e nome> di dominio sono segnaposto per il nome del computer effettivo o il nome di dominio usati al momento della creazione del gruppo.<> Se un nuovo gruppo viene creato per questo host, deve avere i privilegi descritti nell'argomento Gruppi host. |
Ripetere i passaggi seguiti durante la creazione dell'host "Invia" per creare un host "Ricezione". Configurare l'host "Receive" con i valori delle proprietà seguenti:
Proprietà | Valore |
---|---|
Nome | RxHost |
Tipo | In-Process |
Consenti rilevamento host | Assicurarsi che questa casella non sia selezionata. |
Considerato attendibile in base all'autenticazione | Assicurarsi che questa casella non sia selezionata. |
Solo 32 bit | Assicurarsi che questa casella non sia selezionata. |
Imposta come host predefinito del gruppo | Assicurarsi che questa casella non sia selezionata. |
Gruppo di Windows | Il gruppo di Windows usato per controllare l'accesso a questo host e alle istanze host associate. Il gruppo Window creato per l'host in-process predefinito è denominato <Nome computer\Utenti applicazioni BizTalk (per un singolo server BizTalk Server installazione) o Domain Name\BizTalk Application Users (per un'installazione di più server BizTalk Server, che richiede l'uso di gruppi di> dominio).>< Nota:<Nome computer e nome> di dominio sono segnaposto per il nome del computer effettivo o il nome di dominio usati al momento della creazione del gruppo.<> Se un nuovo gruppo viene creato per questo host, deve avere i privilegi descritti nell'argomento Gruppi host. |
Creare istanze degli host di invio e ricezione di BizTalk Server
Seguire la procedura descritta nell'argomento Documentazione BizTalk Server Come aggiungere un'istanza host per creare e avviare istanze dell'host BizTalk Server "Invia". Configurare un'istanza dell'host "Invia" da eseguire in ogni BizTalk Server nel gruppo BizTalk Server e configurare ogni istanza host con i valori delle proprietà seguenti:
Proprietà | Valore |
---|---|
Nome host | Selezionare TxHost nell'elenco a discesa accanto al nome host. |
Server | Selezionare il BizTalk Server che eseguirà questa istanza host dall'elenco a discesa accanto a Server. |
Accesso | 1. Fare clic sul pulsante Configura per visualizzare la finestra di dialogo Credenziali di accesso . 2. Nella finestra di dialogo Credenziali di accesso immettere i valori seguenti per le proprietà specificate: Proprietà Accesso: nome dell'account utente membro del gruppo Di Windows associato a questo host BizTalk Server. Password: password per l'account utente specificato nella casella di testo Accesso . 3. Fare clic su OK per chiudere la finestra di dialogo Credenziali di accesso . |
Disabilitare l'istanza host dall'avvio. | Assicurarsi che questa casella non sia selezionata. |
Dopo aver creato l'istanza host, fare clic con il pulsante destro del mouse sull'istanza host e selezionare Avvia dal menu di scelta rapida.
Ripetere i passaggi seguiti durante la creazione delle istanze host "Invia" per creare istanze host "Ricezione". Configurare un'istanza dell'host "Ricezione" da eseguire in ogni BizTalk Server nel gruppo BizTalk Server e configurare ogni istanza host con i valori delle proprietà seguenti:
Proprietà | Valore |
---|---|
Nome host | Selezionare RxHost nell'elenco a discesa accanto al nome host. |
Server | Selezionare il BizTalk Server che eseguirà questa istanza host dall'elenco a discesa accanto a Server. |
Accesso | 1. Fare clic sul pulsante Configura per visualizzare la finestra di dialogo Credenziali di accesso . 2. Nella finestra di dialogo Credenziali di accesso immettere i valori seguenti per le proprietà specificate: Proprietà Accesso: nome dell'account utente membro del gruppo Di Windows associato a questo host BizTalk Server. Password: password per l'account utente specificato nella casella di testo Accesso . 3. Fare clic su OK per chiudere la finestra di dialogo Credenziali di accesso. |
Impedisci avvio dell'istanza host | Assicurarsi che questa casella non sia selezionata. |
Dopo aver creato l'istanza host, fare clic con il pulsante destro del mouse sull'istanza host e selezionare Avvia dal menu di scelta rapida.
Creare una porta di ricezione BizTalk Server
Seguire la procedura descritta nell'argomento Come creare una porta di ricezione nella documentazione di BizTalk Server per creare una porta di ricezione One-Way. Quando si crea la porta di ricezione, lasciare tutte le proprietà in valori predefiniti, ad eccezione di quanto indicato nella tabella seguente:
Proprietà | Valore |
---|---|
General\Name | BTSLoadTestMessaging.OneWay.ReceivePort |
Tipo generale\porta | Unidirezionale |
Generale\Autenticazione | Nessuna autenticazione |
Generale\Abilitare il routing per i messaggi non riusciti | Assicurarsi che questa casella non sia selezionata. |
Generale\Descrizione | Lasciare vuoto il campo |
Mappe in ingresso | Nessuno |
Rilevamento | Assicurarsi che tutte le caselle non siano controllate. |
Indirizzi di ricezione | Fare clic su Nuovo, verrà visualizzata la finestra di dialogo Proprietà percorso di ricezione che deve essere configurata come descritto nella sezione seguente, Creare una BizTalk Server Percorso di ricezione. |
Creare un percorso di ricezione BizTalk Server
Nella finestra di dialogo Proprietà percorso di ricezione visualizzata durante la creazione della porta di ricezione BizTalk Server applicare i valori di proprietà specificati:
Proprietà | Valore |
---|---|
Nome: | BTSLoadTest.Messaging.OneWay.WCF-Customer.ReceiveLocation |
Gestore di ricezione: | RxHost |
Pipeline di ricezione: | PassThruReceive |
Descrizione: | Lasciare vuoto questo valore |
Digitare: | Selezionare WCF-Custom nell'elenco a discesa e quindi fare clic sul pulsante Configura , verrà visualizzata la finestra di dialogo Proprietà trasporto personalizzate WCF che deve essere configurata come descritto nella sezione seguente, Configurare il trasporto di ricezione WCF-Custom. |
Configurare il trasporto di ricezione WCF-Custom
Nella finestra di dialogo Proprietà trasporto personalizzate WCF visualizzata durante la creazione della posizione di ricezione BizTalk Server lasciare tutte le proprietà in valori predefiniti, ad eccezione di quanto indicato nella tabella seguente:
Proprietà | Valore |
---|---|
Generale\Indirizzo (URI) | net.tcp://localhost:8123/btsloadtest |
Binding\Tipo di associazione | Nettcpbinding |
Binding\NetTcpBindingElement\listenBacklog | 400 |
Binding\NetTcpBindingElement\maxConnections | 400 |
Binding\Security\NetTcpSecurityElement\mode | Nessuno |
Comportamento\ServiceBehavior\serviceThrottling\ServiceThrottlingElement Note: per aggiungere il comportamento del servizioThrottling all'elenco dei comportamenti, fare clic con il pulsante destro del mouse su ServiceBehavior, scegliere Aggiungi estensione, selezionare serviceThrottling dall'elenco delle estensioni del comportamento e quindi fare clic su OK. | Impostare le proprietà ServiceThrottlingElement sui valori seguenti: - maxConcurrentCalls 400 - maxConcurrentInstances 400 - maxConcurrentSessions 400 |
Comportamento\ServiceBehavior\serviceDebug\ServiceDebugElement Note: per aggiungere il comportamento del servizioDebug all'elenco dei comportamenti, fare clic con il pulsante destro del mouse su ServiceBehavior, scegliere Aggiungi estensione, selezionare serviceDebug dall'elenco delle estensioni del comportamento e quindi fare clic su OK. | Lasciare l'elenco delle proprietà ServiceDebugElement nei valori predefiniti (vuoto) ad eccezione delle proprietà seguenti, che devono essere modificate in un valore True: - httpHelpPageEnabled Vero - httpsHelpPageEnabled Vero - Includeexceptiondetailinfaults Vero |
Fare clic su OK per chiudere la finestra di dialogo Proprietà trasporto WCF-Custom e quindi fare di nuovo clic su OK per chiudere la finestra di dialogo Proprietà percorso ricezione.
Creare una porta di trasmissione BizTalk Server
Seguire la procedura descritta nell'argomento Come creare una porta di trasmissione nella documentazione di BizTalk Server per creare una porta di trasmissione unidirezionale statica. Quando si crea la porta di invio, lasciare tutte le proprietà in valori predefiniti, ad eccezione di quanto indicato nella tabella seguente:
Proprietà | Valore |
---|---|
General\Name | BTSLoadTest.Messaging.Send.WCF-Custom |
Generale\Gestore di invio | TxHost |
Generale\Pipeline di invio | PassThruTransmit |
Filtri\Nome | BTS.ReceivePortName |
Filtri\Operatore | == |
Filtri\Valore | BTSLoadTest.Messaging.OneWay.ReceivePort |
Filtri\Raggruppa per | Nota : se queste proprietà sono configurate con i valori corretti, il filtro deve essere visualizzato come BTS.ReceivePortName == BTSLoadTest.Messaging.OneWay.ReceivePort illustrato nella parte inferiore della pagina Filtri della finestra di dialogo Proprietà porta di invio. A seguito dell'applicazione di questo filtro, questa porta di invio sottoscrive tutti i messaggi ricevuti da BizTalk Server tramite la porta di ricezione denominata BTSLoadTest.Messaging.OneWay.ReceivePort. |
Rilevamento | Assicurarsi che tutte le caselle non siano controllate. |
Generale\Type | Selezionare WCF-Custom nell'elenco a discesa e quindi fare clic sul pulsante Configura , verrà visualizzata la finestra di dialogo Proprietà trasporto personalizzate WCF che deve essere configurata come descritto nella sezione seguente, Configurare il WCF-Custom Invia trasporto. |
Configurare il trasporto di trasmissione WCF-Custom
Nella finestra di dialogo Proprietà trasporto personalizzate WCF visualizzata durante la creazione della porta di trasmissione BizTalk Server lasciare tutte le proprietà in valori predefiniti, tranne quanto indicato nella tabella seguente:
Proprietà | Valore |
---|---|
Generale\Indirizzo (URI) | net.tcp://<Nome> computer:2001/TCP1 Importante:<Nome> computer è un segnaposto per il nome computer effettivo usato per ospitare IndigoService.exe, progettato per l'utilizzo di messaggi inviati tramite WCF. Poiché IndigoService.exe richiede risorse molto piccole, spesso è perfettamente accettabile eseguire IndigoService.exe nel computer SQL Server usato per i database del gruppo di BizTalk Server. |
Binding\Tipo di associazione | customBinding |
Come per la maggior parte dei tipi di associazione WCF-Custom, il tipo di associazione customBinding espone diverse proprietà, che devono essere impostate sui valori seguenti:
Nella sezione Binding è presente una proprietà CustomBindingElement con una sezione Configuration associata. Lasciare tutti i valori nella sezione Configuration per la proprietà CustomBindingElement nei valori predefiniti.
Quindi in CustomBindingElement fare clic con il pulsante destro del mouse su testoMessageEncoding e selezionare Rimuovi estensione (Del). Analogamente, fare clic con il pulsante destro del mouse su httpTransport e selezionare Rimuovi estensione (Del).
Fare clic con il pulsante destro del mouse su CustomBindingElement e scegliere Aggiungi estensioni per visualizzare la finestra di dialogo Seleziona estensione elemento binding .
Selezionare binaryMessageEncoding e fare clic su OK per aggiungere l'estensione dell'elemento binaryMessageEncoding . Ripetere i passaggi per visualizzare la finestra di dialogo Seleziona estensione elemento binding e scorrere verso il basso l'elenco delle estensioni degli elementi disponibili finché non viene visualizzata l'estensione dell'elemento tcpTransport , selezionare tcpTransport e fare clic su OK.
In CustomBindingElement selezionare l'elemento tcpTransport e nella sezione Configuration per tcpTransport lasciare tutte le proprietà in valori predefiniti, ad eccezione di quanto indicato nella tabella seguente:
Proprietà Valore connectionBufferSize 2097152 maxBufferSize 2097152 maxPendingAccepts 400 maxPendingConnections 400 listenBacklog 400 maxBufferPoolSize 2097152 maxReceivedMessageSize 2097152 Nell'elemento tcpTransport selezionare l'elemento ConnectionPoolSettings e lasciare tutte le proprietà in valori predefiniti, ad eccezione della proprietà maxOutboundConnectionsPerEndpoint , che deve essere modificata in un valore pari a 400.
Fare clic su OK per chiudere la finestra di dialogo Proprietà trasporto WCF-Custom, quindi fare di nuovo clic su OK per chiudere la finestra di dialogo BTSLoadTest.Messaging.Send.WCF-Custom - Send Port Properties .
Configurare un computer per l'utilizzo dei messaggi inviati dalla porta di invio BizTalk Server
Come descritto in precedenza, la IndigoService.exe è progettata per l'utilizzo di messaggi inviati tramite WCF. Include i seguenti 4 file e devono trovarsi nel computer che si vuole eseguire IndigoService.exe:
\IndigoService\bin\Release\IndigoService.exe
\IndigoService\bin\Release\IndigoService.exe.config
\IndigoService\bin\Release\Response.xml
\IndigoService\bin\Release\StartIndigoService.bat
Iniziare quindi IndigoService.exe facendo doppio clic su StartIndigoService.bat. IndigoService.exe utilizza i messaggi inviati all'endpoint specificato nel file IndigoService.exe.config:
<endpoint address="net.tcp://localhost:2001/TCP1" binding="netTcpBinding" bindingConfiguration="Binding1" name="endpoint1" contract="IndigoService.IServiceTwoWaysVoidNonTransactional" />
Questo è il motivo per cui l'indirizzo porta di invio è configurato con un indirizzo (URI) di net.tcp://<Nome> computer:2001/TCP1
Poiché IndigoService.exe richiede risorse molto piccole, spesso è perfettamente accettabile eseguire IndigoService.exe nel computer SQL Server usato per i database BizTalk Server.
Disabilitare il rilevamento e la limitazione per il gruppo di BizTalk Server
Per determinare la velocità effettiva assoluta sostenibile del sistema, sia il rilevamento dei messaggi che la limitazione devono essere disabilitati prima di iniziare il test di carico. Questa operazione può essere eseguita usando la console di amministrazione BizTalk Server seguendo questa procedura:
Avviare la console di amministrazione di BizTalk Server. Fare clic su Start, scegliere Tutti i programmi, scegliere BizTalk Server 2010 e quindi fare clic su BizTalk Server Amministrazione.
In BizTalk Server Amministrazione selezionare il gruppo BizTalk se è elencato o se non è elencato, fare clic con il pulsante destro del mouse su Amministrazione BizTalk Server, selezionare Connetti al gruppo esistente, immettere il nome SQL Server che ospita il database di gestione di BizTalk group BizTalk Server accanto a SQL Server nome:, immettere il nome del nome del database di gestione del gruppo BizTalk accanto al nome del database: quindi fare clic su OK.
Fare clic con il pulsante destro del mouse sul nodo Gruppo BizTalk e selezionare Impostazioni per visualizzare il dashboard delle impostazioni BizTalk.
Fare clic per selezionare Host nel riquadro sinistro del dashboard delle impostazioni BizTalk.
Fare clic sull'elenco a discesa accanto a Host per selezionare uno degli host che verranno usati durante i test delle prestazioni.
Lasciare le proprietà nei valori predefiniti, ad eccezione di quanto indicato nella tabella seguente:
Proprietà Valore Generale\Spostare i dati di rilevamento in DTA DB Deselezionare questa casella se è selezionata. Solo generale\a 32 bit Deselezionare questa casella se è selezionata. Generale\Intervalli di polling\Messaggistica Impostare su un valore pari a 200000000 Generale\Intervalli di polling\Orchestrazioni Impostare su un valore pari a 200000000 Limitazione basata su risorse\Messaggi in-process Impostare su un valore di 10000 Limitazione basata sulle risorse\Dimensioni della coda dei messaggi interni Impostare su un valore di 10000 Limitazione basata su risorse\Conteggio messaggi nel database Impostare su un valore pari a 0 Limitazione basata su risorse\Utilizzo memoria\Processo virtuale Impostare su un valore pari a 0 Limitazione basata su frequenza\Pubblicazione\Override della limitazione Impostare su Non limitare Limitazione della velocità\Recapito\Limitazione dell'override Impostare su Non limitare Ripetere il processo descritto nel passaggio 6 per ogni host che verrà usato durante il corso del test delle prestazioni.
Fare clic per selezionare Istanze host nel riquadro sinistro del dashboard delle impostazioni BizTalk.
Fare clic sull'elenco a discesa accanto a Istanza host: per selezionare una delle istanze host che verranno usate per i test delle prestazioni.
Lasciare i valori delle proprietà all'impostazione predefinita, ad eccezione della modifica dei thread di lavoro massimo CLR .NET su un valore pari a 100 e modificare i thread di lavoro minimo CLR .NET su un valore pari a 25.
Ripetere il processo descritto nel passaggio 10 per ogni istanza host che verrà usata durante il corso dei test delle prestazioni.
Anche se la disabilitazione del rilevamento e della limitazione non rappresenta in alcun modo ciò che deve essere fatto in uno scenario di produzione, perché queste operazioni sono così costose dal punto di vista delle prestazioni, è consigliabile disabilitarle per individuare la vera velocità effettiva massima sostenibile (MST) di un ambiente BizTalk Server. Ciò consente ai tester di vedere chiaramente l'impatto di qualsiasi modifica delle prestazioni applicata all'ambiente. Certamente un argomento potrebbe essere fatto che il rilevamento non deve essere disabilitato e se si sa fin dall'inizio che l'applicazione BizTalk Server richiederà il rilevamento, è necessario abilitare il rilevamento. Con questo detto, ogni sforzo deve essere fatto per disabilitare la limitazione ai fini dei test delle prestazioni. La limitazione è molto utile per impedire a un BizTalk Server di "cadere" a causa di un carico eccessivo in un ambiente di produzione. Tuttavia, non si vuole abilitare la limitazione delle limitazioni durante il test delle prestazioni perché è costoso da un punto di vista delle prestazioni e perché se la limitazione dei calci in durante un test di carico avrà un tempo molto difficile determinare il livello di prestazioni che l'applicazione BizTalk Server può effettivamente ottenere. Gli argomenti successivi descrivono come eseguire test di carico in fase per eseguire il push dell'ambiente BizTalk Server oltre MST e quindi tornare a MST effettivo con test di carico costanti. Se la limitazione è abilitata, diventa quasi impossibile eseguire il push dell'ambiente BizTalk oltre MST in modo che sia possibile individuare a sua volta qual è il vero MST.