BizTalk SOAP Receive Adapter tuning
In questi giorni mi stò dedicando al tuning di BizTalk, che è come dire al tuning di .NET, di IIS, di ASP.NET e di SQL Server! :)
Uno dei componenti che richiede una configurazione particolare è il SOAP Receive Adapter, in quanto dovrà essere tarato sulla base del carico atteso. I parametri da configurare sono nel machine.config e sono:
|
Parametro |
Sezione |
Valore |
Descrizione |
|
maxIOThreads |
<processModel> |
100 |
Controlla il numero massimo di threads di I/O nel CLR thread pool. Il valore impostato viene automaticamente moltiplicato per il numero di CPU. |
|
maxWorkerThreads |
<processModel> |
100 |
Controlla il numero massimo di worker threads nel CLR thread pool. Il valore impostato viene automaticamente moltiplicato per il numero di CPU. |
|
minIOThreads |
<processModel> |
25
|
Questi parametri sono utili nel caso in cui ci sono picchi di richieste seguiti da periodi di inattività. Preimpostando il numero minimo di thread e worker thread nel CLR thread pool, si migliorano le performance in quanto il thread pool mantiene sempre un minimo di oggetti disponibili, che quindi non devono essere creati al momento del picco. |
|
minWorkerThreads |
<processModel> |
25 |
|
minFreeThreads |
<httpRuntime> |
88 x numero CPU |
Il worker process utilizza tale valore per accodare tutte le richieste se il numero dei threads disponibili nel thread pool è minore del valore di tale parametro. Questo settaggio limita effettivamente il numero di richieste eseguite contemporaneamente a maxWorkerThreads-minFreeThreads. |
|
minLocalRequestFreeThreads |
<httpRuntime> |
76 x numero CPU |
Il worker process utilizza questo settaggio per accodare le richieste provenienti da localhost (web application/service che chiama web service sulla stessa macchina) se il numero dei threads disponibili nel thread pool è minore di tale parametro.
La differenza tra minFreeThreads e minLocalRequestFreeThreads stà nel fatto che le richieste provenienti dallo stesso server hanno una priorità maggiore rispetto a quelle provenienti da remoto. |
|
maxconnection |
<connectionManagement> |
12 x numero CPU |
Determina quante connessioni possono essere effettuate ad uno specifico indirizzo IP |
Ok, come primo post "vero" posso ritenermi soddisfatto. :)