Condividi tramite


Modalità di implementazione della limitazione delle richieste degli host in BizTalk Server

Il meccanismo di limitazione dell'host BizTalk Server monitora continuamente una condizione di limitazione, calcola la gravità della condizione di limitazione e applica progressivamente la limitazione della limitazione dell'host a seconda della gravità calcolata. Il meccanismo di limitazione è l'ottimizzazione automatica e le opzioni di configurazione predefinite sono adatte per la maggior parte degli scenari di elaborazione BizTalk Server. BizTalk Server la limitazione dell'host espone diverse opzioni configurabili che possono essere usate per ottimizzare la limitazione delle richieste per scenari specifici. Per informazioni sulla modifica di queste opzioni di configurazione, vedere Come modificare le impostazioni host.

Componenti dell'algoritmo di limitazione delle richieste degli host

BizTalk Server usa l'algoritmo seguente durante l'applicazione della limitazione dell'host:

  1. Monitorare costantemente i parametri seguenti per verificare se superano determinate soglie. Se i valori per il parametro superano la soglia specificata per il parametro, esiste una condizione di limitazione delle richieste.

    • Quantità di memoria utilizzata (memoria a livello di sistema e di processo host).

    • Numero di messaggi In-process recapitati o elaborati (soglia per la limitazione delle richieste in uscita).

    • Numero di thread in uso.

    • Dimensioni dei database, misurate in base al numero di elementi nelle tabelle delle code per tutti gli host e al numero di elementi nelle tabelle di rilevamento e dello spooler.

    • Numero di connessioni al database simultanee.

    • Velocità di pubblicazione dei messaggi (in ingresso) e di recapito o di elaborazione dei messaggi (in uscita).

  2. Determinare la gravità della condizione di limitazione delle richieste. Le condizioni di limitazione delle richieste vengono classificate in base alla gravità, come illustrato di seguito (dalla più grave a quella meno grave).

    • La quantità di memoria a livello di processo host utilizzata supera la soglia specificata.

    • Il numero di messaggi In-process supera la soglia specificata.

    • Il numero di thread in uso supera la soglia specificata.

    • Le dimensioni dei database superano la soglia specificata.

    • Tutte le altre condizioni di limitazione delle richieste.

  3. Applicare progressivamente la limitazione delle richieste in base alla gravità delle condizioni di limitazione delle richieste. La limitazione delle richieste viene applicata in modo più aggressivo man mano che la gravità aumenta. La limitazione delle richieste progressiva viene ottenuta nel modo seguente:

    • Viene rilevata una o più condizioni di limitazione delle richieste e a ciascuna di esse viene assegnato un livello di gravità.

    • Viene eseguita un'istruzione per l'implementazione della limitazione delle richieste in base alla condizione con il livello di gravità più elevato. A seconda della condizione di limitazione delle richieste, se la condizione persiste, la dimensione dei vari pool di thread potrebbe essere ridotta e la memoria potrebbe essere rilasciata mediante la disidratazione delle orchestrazioni in esecuzione.

    • Durante la pubblicazione o l'elaborazione del messaggio viene applicato un periodo di ritardo, a seconda che il messaggio sia in ingresso o in uscita. Poiché il periodo di ritardo è proporzionale alla gravità della condizione di limitazione delle richieste, per le condizioni di limitazione delle richieste con un livello di gravità più elevato verrà impostato un periodo di limitazione delle richieste più lungo rispetto alle condizioni di limitazione delle richieste con un livello di gravità minore. Questo periodo di ritardo viene regolato entro determinati intervalli dal meccanismo di limitazione delle richieste man mano che le condizioni cambiano. Il periodo di ritardo corrente viene esposto tramite il ritardo del recapito dei messaggi (ms) e i contatori delle prestazioni ritardo pubblicazione messaggi (ms) associati alla categoria di oggetti prestazioni BizTalk:Message Agent . Questi contatori degli oggetti prestazioni sono documentati nell'argomento Contatori delle prestazioni di limitazione dell'host.

    • Il meccanismo di limitazione delle richieste continua a verificare se sia presente una condizione di limitazione delle richieste. Se le condizioni di limitazione delle richieste vengono limitate, i messaggi rallentati verranno sbloccati e il pool di thread e le altre risorse potranno operare in modalità non limitata. Se il sistema continua a funzionare senza alcuna condizione di limitazione delle richieste, il periodo di ritardo verrà ridotto in modo significativo. Se la condizione di limitazione delle richieste persiste, il periodo di ritardo verrà incrementato in modo proporzionale alla gravità della condizione e i messaggi successivi saranno soggetti al ritardo più elevato.

    • La limitazione delle richieste non viene più implementata una volta trascorso il periodo di ritardo.

Tipo di condizioni di limitazione delle richieste

Esistono tre tipi principali di condizioni di limitazione: frequenza, basata sulle risorse e orchestrazione.

  1. La limitazione basata sulla frequenza è divisa in due categorie; in ingresso (pubblicato) e in uscita (recapitato):

    • Per i messaggi in ingresso (pubblicati), BizTalk Server limita la pubblicazione dei messaggi se la frequenza in ingresso di pubblicazione del messaggio per l'istanza host supera la frequenza in uscita di pubblicazione dei messaggi\* il valore del fattore rate overdrive (percent) specificato. Il parametro Rate overdrive factor (percent) è configurabile nella finestra di dialogo Impostazioni limitazione pubblicazione messaggi . La limitazione delle richieste basata sul tasso per i messaggi in ingresso viene applicata principalmente mediante la generazione di un ritardo prima della pubblicazione del batch di messaggi nel database MessageBox. Per applicare la limitazione delle richieste basata sul tasso per i messaggi in ingresso non viene eseguita alcun'altra azione.

    • Per i messaggi in uscita (recapitati), BizTalk Server limita il recapito dei messaggi se la frequenza in ingresso per il recapito dei messaggi per l'istanza host supera la frequenza in uscita del recapito dei messaggi * il valore del fattore di overdrive rate (percent) specificato. Il parametro Rate overdrive factor (percent) è configurabile nella finestra di dialogo Impostazioni limitazione elaborazione messaggi . La limitazione delle richieste basata sul tasso per i messaggi in uscita viene applicata principalmente mediante la generazione di un ritardo prima della rimozione dei messaggi dalla coda in memoria e del recapito dei messaggi a Gestione endpoint (EPM, End Point Manager) o al motore di orchestrazione per l'elaborazione. Per applicare la limitazione delle richieste basata sul tasso per i messaggi in uscita non viene eseguita alcun'altra azione.

      Per altre informazioni sul fattore di overdrive rate e altri valori di limitazione basata sulla frequenza, vedere Come modificare le impostazioni di limitazione basata sulla frequenza.

  2. La limitazione basata sulle risorse monitora le risorse di sistema, ad esempio thread, memoria e dimensioni del database e può essere applicata a qualsiasi classe di servizio. Per altre informazioni sui valori di limitazione basata sulle risorse, vedere Come modificare le impostazioni di limitazione basata sulle risorse.

  3. La limitazione dell'orchestrazione può impedire la disidratazione e quando sospendere/riprendere le sottoscrizioni. Per altre informazioni sui valori di limitazione dell'orchestrazione, vedere Come modificare le impostazioni di limitazione dell'orchestrazione.

Trigger, azioni e le strategie di riduzione delle condizioni di limitazione delle richieste

In questa sezione viene fornita una descrizione dei trigger per le diverse condizioni di limitazione delle richieste, delle azioni risultanti dal meccanismo di limitazione delle richieste e delle tecniche utilizzabili per ridurre la condizione di limitazione delle richieste.

Limitazione delle richieste in ingresso

Il meccanismo di limitazione delle richieste BizTalk consente di applicare la limitazione delle richieste in ingresso al motore di orchestrazione (XLANG) e agli adapter in ingresso.

Usare lo stato di limitazione della limitazione della pubblicazione dei messaggi e i contatori della durata della limitazione dello stato di pubblicazione dei messaggi associati alla categoria di oggetti prestazioni BizTalk:MessageAgent per misurare lo stato di limitazione corrente e la durata della limitazione. Per altre informazioni sui contatori delle prestazioni di limitazione delle richieste dell'host disponibili, vedere Contatori delle prestazioni di limitazione dell'host.

La limitazione delle richieste in ingresso può causare il backlog dei messaggi in ingresso nell'origine. Se la limitazione delle richieste in ingresso viene applicata a un adapter di ricezione, quest'ultimo potrebbe non essere più in grado di ricevere i messaggi finché la condizione di limitazione delle richieste non viene ridotta.

Stato limitazione pubblicazione

messaggi
Trigger per la condizione di limitazione delle richieste Azioni di limitazione delle richieste eseguite Strategia di riduzione Oggetto prestazione Contatore delle prestazioni
2 La frequenza in ingresso di pubblicazione dei messaggi per l'istanza host supera la frequenza in uscita di pubblicazione dei messaggi\* il valore del fattore di overdrive rate (percent) specificato. Il database non è in grado di gestire la velocità di pubblicazione. Bloccare il thread di pubblicazione per un periodo di tempo calcolato in modo dinamico fino a quando la frequenza in ingresso di Pubblicazione messaggi è uguale alla frequenza in uscita pubblicazione messaggi * il valore del fattore overdrive rate (percent) specificato. Utilizzare i contatori delle prestazioni per determinare la velocità in ingresso e in uscita della pubblicazione dei messaggi. Considerare un fattore di calcolo appropriato per l'ambiente in uso.

Verificare che i valori specificati per la durata della finestra di campionamento e il numero minimo di parametri di campioni siano appropriati per lo scenario in uso.

Per altre informazioni su questi parametri, vedere How to Modify Rate Based Throttling Settings.For more information about these parameters, see How to Modify Rate Based Throttling Settings.
BizTalk:MessageAgent Velocità in ingresso pubblicazione messaggi

Velocità in uscita pubblicazione messaggi
4 La memoria del processo supera la soglia specificata.

Questa situazione può verificarsi se il batch da pubblicare richiede l'utilizzo di una quantità piuttosto elevata di memoria o i messaggi vengono elaborati da un numero eccessivo di thread.
Ridurre le dimensioni del pool di thread utilizzato da EPM.

Bloccare i thread EPM per impedire l'elaborazione di nuovi batch di messaggi.

Se la persistenza dei messaggi di un batch nel database prevede l'impiego di una quantità di memoria considerevole, anche il thread di pubblicazione sarà soggetto a un ritardo progressivo prima che i messaggi vengano resi persistenti nel database.

Il blocco del batch di pubblicazione a causa della pressione della memoria del processo dipende da diversi fattori, tra cui il numero di messaggi all'interno del batch o l'eventuale presenza di comandi di disidratazione o eliminazione di messaggi nel batch.
Valutare l'opportunità di diminuire la quantità di carico riducendo il pool di thread EPM e/o le dimensioni dei batch degli adapter.

Se il processo non utilizza una quantità eccessiva di memoria, valutare la possibilità di aumentare la soglia virtuale di elaborazione per l'host.

Per altre informazioni sulla modifica del valore virtuale processo , vedere Come modificare le impostazioni di limitazione basata sulle risorse.
BizTalk:MessageAgent Memoria processo elevata

Utilizzo memoria del processo (MB)

Soglia utilizzo memoria del processo (MB)
6 Le dimensioni della coda di messaggi degli host, le dimensioni della tabella dello spooler o le dimensioni della tabella di rilevamento superano la soglia specificata.

I motivi possibili per questa condizione includono:

- I processi di SQL Agent usati da BizTalk Server per gestire i database BizTalk Server non in esecuzione o sono in esecuzione lentamente.
- I componenti del flusso inattivo non elaborano i messaggi dalla coda in memoria in modo tempestivo.
- Il numero di messaggi sospesi è elevato.
- È stato raggiunto il carico massimo sostenibile per il sistema.
Ridurre le dimensioni del pool di thread utilizzato da EPM.

Bloccare i thread EPM per impedire l'elaborazione di nuovi batch di messaggi.

Anche il thread di pubblicazione è soggetto a un ritardo progressivo prima che i messaggi vengano resi persistenti nel database.
Assicurarsi che i processi di SQL Agent utilizzati da BizTalk Server per gestire i database di BizTalk Server siano in esecuzione e non presentino errori.

Terminare e riprendere le istanze sospese.

Aumentare il valore predefinito per il conteggio dei messaggi nella soglia del database prendendo in considerazione i requisiti di spazio del server SQL che ospita i database BizTalk.

Se il database viene ridimensionato in modo appropriato per gestire un backlog di messaggi aggiuntivo, valutare la possibilità di aumentare i valori del moltiplicatore di dati Spool e Tracking per consentire un backlog aggiuntivo nelle tabelle Spool e Tracking.

Per altre informazioni sulla modifica dei valori, vedere Come modificare le impostazioni di limitazione basata su risorse.
BizTalk:MessageAgent

BizTalk:MessageBox:Contatori generali

BizTalk:MessageBox:Contatori host
Agente messaggi/Dimensioni database

MessageBox:Contatori generali/Dimensione spooler

MessageBox:Contatori generali/Rilevamento dimensione dati

MessageBox:Contatori host/Coda host - Lunghezza

MessageBox:Contatori host/Coda host – Messaggi sospesi - Lunghezza
8 Le sessioni di database utilizzate dall'istanza di host superano la soglia specificata. Ridurre le dimensioni del pool di thread utilizzato da EPM.

Bloccare i thread EPM per impedire l'elaborazione di nuovi batch di messaggi.

Anche il thread di pubblicazione è soggetto a un ritardo progressivo prima che i messaggi vengano resi persistenti nel database.
Prendere in considerazione l'aumento della soglia di connessioni di database per l'host.

Per altre informazioni sulla modifica di questo valore, vedere How to Modify Resource Based Throttling Settings.For more information on changing this value, see How to Modify Resource Based Throttling Settings.
BizTalk:MessageAgent Sessione database
9 Il numero di thread del processo supera la soglia specificata. Ridurre le dimensioni del pool di thread utilizzato da EPM.

Bloccare i thread EPM per impedire l'elaborazione di nuovi batch di messaggi.

Anche il thread di pubblicazione è soggetto a un ritardo progressivo prima che i messaggi vengano resi persistenti nel database.
Valutare l'opportunità di modificare le dimensioni del pool di thread differenti per garantire che nel sistema non venga creato un numero elevato di thread.

Per altre informazioni sulla modifica delle dimensioni del pool di thread, vedere Come modificare le impostazioni generali e Come modificare le impostazioni di limitazione basata su risorse.
BizTalk:MessageAgent Numero thread

Soglia numero thread
5 La memoria di sistema supera la soglia specificata. Ridurre le dimensioni del pool di thread utilizzato da EPM.

Bloccare i thread EPM per impedire l'elaborazione di nuovi batch di messaggi.

Se la persistenza dei messaggi di un batch nel database prevede l'impiego di una quantità di memoria considerevole, anche il thread di pubblicazione sarà soggetto a un ritardo progressivo prima che i messaggi vengano resi persistenti nel database.

Il blocco del batch di pubblicazione a causa della pressione della memoria del processo dipende da diversi fattori, tra cui il numero di messaggi all'interno del batch o l'eventuale presenza di comandi di disidratazione o eliminazione di messaggi nel batch.
Valutare l'opportunità di diminuire il carico riducendo le dimensioni predefinite del pool di thread EPM e/o le dimensioni dei batch degli adapter.

Se il processo non utilizza memoria eccessiva, valutare la possibilità di aumentare la soglia fisica globale per l'host.

Per altre informazioni sulla modifica della soglia fisica globale , vedere Come modificare le impostazioni di limitazione basata sulle risorse.
BizTalk:MessageAgent Utilizzo memoria fisica (MB)

Soglia di utilizzo della memoria fisica (MB)

Limitazione delle richieste in uscita

Il meccanismo di limitazione delle richieste BizTalk consente di applicare la limitazione delle richieste in uscita al motore di orchestrazione (XLANG) e agli adapter in uscita.

Usare i contatori di durata della limitazione del recapito dei messaggi e Della limitazione dello stato del recapito dei messaggi associati alla categoria di oggetti prestazioni BizTalk:MessageAgent per misurare lo stato di limitazione corrente e la durata della limitazione. Per altre informazioni sui contatori delle prestazioni di limitazione delle richieste degli host disponibili, vedere Contatori delle prestazioni di limitazione dell'host.

La limitazione delle richieste in uscita può causare il recapito ritardato dei messaggi e l'eventuale accumulo di messaggi nella coda in memoria nonché provocare il blocco dei thread di cui è stato annullato l'accodamento fin quando la condizione di limitazione delle richieste non viene ridotta. Quando i thread di cui è stato annullato l'accodamento vengono bloccati, nessun altro messaggio viene estratto dal database MessageBox nella coda in memoria per il recapito in uscita.

Recapito dei messaggi

messaggi
Trigger per la condizione di limitazione delle richieste Azioni di limitazione delle richieste eseguite Strategia di riduzione Oggetto prestazione Contatore delle prestazioni
1 La frequenza in arrivo per il recapito dei messaggi per l'istanza host supera la frequenza in uscita del recapito dei messaggi \* il valore del fattore overdrive rate (percent) specificato

Questa condizione può essere causata dall'elevata complessità di elaborazione, dalla lentezza degli adapter in uscita o dall'insufficienza temporanea delle risorse di sistema.
Bloccare il thread di recapito per un periodo di tempo calcolato in modo dinamico fino a quando la frequenza in arrivo del recapito dei messaggi è uguale alla frequenza in uscita del recapito dei messaggi \* il valore del fattore di overdrive rate (percentuale) specificato. Utilizzare i contatori delle prestazioni per determinare la velocità in ingresso e in uscita del recapito dei messaggi. Considerare un fattore di calcolo appropriato per l'ambiente in uso.

Verificare che i valori specificati per la durata della finestra di campionamento e il numero minimo di parametri di campioni siano appropriati per lo scenario in uso.

Per altre informazioni su questi parametri, vedere How to Modify Rate Based Throttling Settings.For more information about these parameters, see How to Modify Rate Based Throttling Settings.
BizTalk:MessageAgent Velocità in ingresso recapito messaggi

Velocità in uscita pubblicazione messaggi
4 La memoria del processo supera la soglia specificata.

Questa situazione può verificarsi in scenari di elaborazione che comportano un intenso utilizzo della memoria, durante l'elaborazione di messaggi di grandi dimensioni o durante il tentativo da parte degli adapter di trasmissione di elaborare un numero elevato di messaggi contemporaneamente.
Rallentare il recapito di messaggi agli adapter o a XLANG.

Ridurre il consumo della memoria del processo mediante la disidratazione delle istanze del servizio e la riduzione delle dimensioni della cache quando applicabile.

Ridurre le dimensioni dei pool di thread utilizzati da EPM e/o da Agente messaggi.

Forzare periodicamente la procedura di Garbage Collection (GC) .NET.
Se il sistema non diventa inattivo a causa della limitazione delle richieste basata sulla memoria del processo, è possibile che non sia necessario eseguire alcuna azione.

Se il contatore del conteggio dei messaggi in-process è elevato e l'utilizzo della CPU non è eccessivo anche quando è presente una limitazione basata sulla memoria del processo, potrebbe non essere necessaria alcuna azione aggiuntiva.

Se il sistema sembra superare la limitazione, prendere in considerazione l'aumento del valore associato alla soglia virtuale Process per l'host e verificare che l'istanza host non generi un errore di "memoria insufficiente". Se viene generato un errore di "memoria insufficiente" aumentando la soglia virtuale Processo , valutare la possibilità di ridurre i valori per le soglie relative alle dimensioni della coda dei messaggi interni e ai messaggi in-process . Questa strategia è particolarmente indicata negli scenari di elaborazione di messaggi di grandi dimensioni.

Per altre informazioni su questi parametri, vedere Come modificare le impostazioni di limitazione basata sulle risorse.
BizTalk:MessageAgent Memoria processo elevata

Elaborazione dell'utilizzo della memoria (MB)

Soglia utilizzo memoria del processo (MB)

Numero messaggi In-Process

Numero istanze attive
3 Il numero di messaggi In-process recapitati a una classe di servizio supera la soglia specificata.

Questa condizione può essere causata dall'elevata complessità di elaborazione, dalla lentezza degli adapter in uscita o dall'insufficienza temporanea delle risorse di sistema.
Rallentare il recapito di messaggi agli adapter o a XLANG.

Ridurre le dimensioni del pool di thread utilizzato da Agente messaggi.
Se si verifica una limitazione eccessiva, prendere in considerazione l'aumento del valore associato alla soglia dei messaggi in-process .

Per altre informazioni su questo parametro, vedere How to Modify Resource Based Throttling SettingsNota: l'aumento di questo valore può influire negativamente sulle prestazioni dell'adattatore di trasmissione e/o sull'aumento dell'utilizzo della memoria del processo.
BizTalk:MessageAgent Numero messaggi In-Process

Soglia numero messaggi In-Process
9 Il numero di thread del processo supera la soglia specificata. Ridurre le dimensioni dei pool di thread utilizzati da EPM e/o da Agente messaggi. Valutare l'opportunità di modificare le dimensioni del pool di thread differenti per garantire che nel sistema non venga creato un numero elevato di thread.

Per altre informazioni sulla modifica delle dimensioni del pool di thread, vedere Come modificare le impostazioni generali e Come modificare le impostazioni di limitazione basata su risorse.
BizTalk:MessageAgent Numero thread

Soglia numero thread
5 La memoria di sistema supera la soglia specificata. Rallentare il recapito di messaggi agli adapter o a XLANG.

Ridurre il consumo della memoria del processo mediante la disidratazione delle istanze del servizio e la riduzione delle dimensioni della cache quando applicabile.

Ridurre le dimensioni dei pool di thread utilizzati da EPM e/o da Agente messaggi.
Valutare l'opportunità di diminuire il carico riducendo le dimensioni predefinite del pool di thread EPM e/o le dimensioni dei batch degli adapter.

Se il processo non utilizza memoria eccessiva, valutare la possibilità di aumentare la soglia fisica globale per l'host.

Per altre informazioni sulla modifica della soglia fisica globale , vedere Come modificare le impostazioni di limitazione basata sulle risorse.
BizTalk:MessageAgent Utilizzo memoria fisica (MB)