Impostare Thottling da Managment Console di BizTlak
La modifica delle impostazioni è possible attuarla sia selezionando la voce Advanced dell’ Host interessato, che da registry.
Per modificare le impostazioni di throttling dalla Managment Console di BizTalk selezionare la voce Advanced delle propietà dell Host interessato.
Selezionare BizTalk Server 2006 Application > [BizTalk Group] > Plattform Settings > Hosts > [Host interessato] > Properties Fig. 1
Fig. 1
Selezionare Advanced Fig 2
Fig.2
Impostazioni principali
In generale i tipi di valore impostabili sono
0 per definire che il controllo di throttling è disabilitato, in tal caso viene comunque utilizzato il throttling automatico di BizTalk Server 2006.
Il throttling automatico di BizTalk Server 2006 è una delle features più potente, questo permette a BizTalk di intervenire in caso di sovraccarico o meno del sistema.
Questo significa che utlizzare i counters di Throttling ci consente anche di vedere se esistono e dove sono gli eventuali bottleneck nel sistema.
In seguito vedremo anche i counters interessati.
Da 0 a 100 per impostare una percentuale rispetto al valore della risorsa interessata, chiaramente è BizTalk a calcolare la percentuale in base anche alle variazioni nel tempo.
Utilizzare la percentuale ci consente di avere delle politiche di throttling dinamico sulla base delle variazioni della risorsa interessata, esempio la memoria fisica di sistema.
Sopra i 100 si intende utilizzare un determinato valore di utilizzo delle risorsa interessata e non la percentuale, in tal caso si pone un limite.
Di seguito le principali impostazioni con i relativi significati e strategie di utilizzo, suddividse per Dialog Box
Finestra principalale
Maximum number of messaging engine threads per CPU
Valore di default 20
La modifica di questo paramentro richiede il restart dell’ Host
Specifica il numero Massimo di threads utilizzabili dall’ End Point Manager, EPM è responsabile della ricezione dei messaggi in inbound e del publishing in messagebox.
Inizialmente il numero di threads utilizzati corrisponde al 10% del valore specificato.
Arriverà al massimo valore specificato se BizTlak entra in throttling perchè richiede magggiore elaborazione.
Chiaramente specificare un valore troppo basso causa un sotto utilizzo delle risorse disponibili.
I threads interessati a questo parametro sono solo quelli inerenti l’ EPM e non degli adapters
Throttling Thresholds
Internal message queue size
Valore di default 100
La modifica di questo paramentro richiede il restart dell’ Host
Riferito all’ host interessato , è la dimensione della memoria che la coda dei messaggi da deliverare deve avere.
Questa coda è in memoria e viene utilizzata dall’ host quale stadio intermedio prima di inviarli in messagebox.
E’ chiaramente un paramentro di vitale importanza, aumentare questo valore significa meno latency e lavorare più in memoria, ecco un best partices:
Parlando di couters, se l’ outbound transport è alto a discapito di un basso In-process message count significa che abbiamo messaggi di grandi dimensioni che vengono messi in memoria , in tal caso abbassare questo parametro aiuta il sistema a non usare memoria ma a lavorare dirattamente su database.
Questa impostazione riguarda solo i messaggi di tipo outbound (delivered)
Database connections per CPU
Valore di default 0
È il numero massimo di sessioni concorrenti in database per CPU permesse prima che entrino in azione attività di throttling da parte di BizTalk.
Solitamente è disabilitata, va abilitata e cioè va inseritio il numero di sessioni se è il database il bottleneck nel sistema.
Per saperlo bisogna monitorare il counter Database Session sotto BizTalk:Message Agent
Questa impostazione interessa l’ outbound message throttling
Threads per CPU
Valore di default 0
Numero totale di thread, compresi quelli creati dall’ adapter, si interviene su questo paramtero davanti a un’ eccessivo numero di threads.
Davanti ad un’ eccessivo numero di threads BizTalk inizia a diminuire il thread pool di EPM e successivamente quello di Message Agent
Utilizzare il counter High thread count del Message:Agent, se vale 1 significa che esiste un’ eccessivo numero di threads
In-process messages per CPU
Valore di default 1.000
E’ il numero massimo di messaggi non ancora processati inviati all’ EPM e all’ XLANG, non si tratta dei messaggi in database ma di quelli in attesa di delivery.
E’ possibile vedere questo numero dal counter In-process message count su BizTalk:Message Agent.
Se si utilizzano messaggi di grandi dimensioni è meglio abbassarlo, chiaramente BizTalk , mediante il throttling automatico, modifica questo valore in rapporto allla dimensione dei messagi nel tempo.
Questa impostazione riguarda solo i messaggi di tipo outbound
Message count in database
Valore di default 50.000
Numero di messaggi pubblicati dall’ host
E’ un calcolo piuttosto complicato, bisogna calcolare la percentuale storica del numero totale di messaggi pubblicati dall’ Host per ogni coda rispetto al totale e sommarli.
Esempio se un host ha un peso del 70% di messaggi pubblicati nella coda X e un’altro il 30% nella coda Y bisogna eseguire questa operazione:
Messaggi pubblicati su X * 70 + messaggi pubblicati su Y * 30
Dove X e Y sono due code messaggi di due host.
Ma più che altro questo parametro è importantissimo per le tabelle di spoll e quella di tracking table, la tracking table.
In parole più semplici, se il Message count in database è ugulae a 50000 (default) e la spool table o la traking table supera 500.000 (cioè [Message count in database] * 10) ecco che bizTalk entra in thottling, per evitarlo alziamo questo valore.
Physical memory usage
Valore di default 0 cioè non usa features di throttling
Corrisponde alla quantità di memoria fisica da utilizzare, BizTalk calcola la percentuale se impostiamo un valore da da 1 a 100, oltre i cento indica che vogliamo specificare il numero in MB di ram da usare e intendiamo limitarlo a quello.
Process memory usage
Valore di default 25
E’ la percentuale calcolata della memoria di utilizzo in elaborazione rispetto a quella totale prima che entri in azione una politica di throttling da parte di BizTalk.
Esempio, se impostiamo 25 e la memoria totale è 1 GB, BizTalk non attua interventi di throttling finchè il processo non supera i 300 MB di memoria.
Se il valore va da 1 a 100 si intende la percentuale, sopra i 100 si intende un valore preciso.
Per controllare come BizTalk sta utilizzando questa memoria bisogna utilizzare il counter Process memory usage (MB)
Message Publishing Throttling Settings dialog box
Queste impostazioni sono inerenti ai messaggi di tipo inbound (published)
Minimum number of samples
Valore di default 100
1,000 * Sample window duration in secondi (o più precisamente, 1 * Sample window duration (milliseconds)).
Per riferimento vedere i counters Message delivery incoming e outgoing rate
Sampling window duration (millisecondi)
Valore di default 15000
Millisencondi utilizzati per calcolare il publishing rate , questo valore aumenta se è alto il latency nella pubblicazione di un messaggio
Rate overdrive factor (percentuale)
Valore di Default 125
Quanto deve essere alto il request rate prima che BizTalk inizi a eseguire politiche di throttling
Esempio se arrivano 200 messaggi al secondo e questo parametro è impostato a 150 significa che il sistema arriva fino a 300 messaggi al secondo prima che BizTalk inizia ad applicare strategie di throttling
150% * 200 = 300
Maximum throttling delay (millisecondi)
Valore di default 300.000
E’ il Massimo ritardo impostato per una istanza di messaggio durante il throttling
Message Processing Throttling Settings dialog box
Come sopra ma queste impostazioni sono inerenti ai messaggi di tipo outbound (delivered)