There have plenty of enhancements in the performance of Biztalk over the last versions, this has mainly been due to 1) the enhancements in the underlying platform, mainly the SQL Server, and 2) to the tuning of the Biztalk engine itself with the cumulative updates happening from one version to another..
Biztalk 2009 really sets a really impressive standard for performance with it's underlying SQL Sever 2008,, all details for the scenario used and the numbers that were achieved could be found in the below articles
http://msdn.microsoft.com/en-us/library/ee377068(BTS.10).aspx
http://msdn.microsoft.com/en-us/library/ee377036(BTS.10).aspx
http://msdn.microsoft.com/en-us/library/ee377057(BTS.10).aspx
" With these results, the Biztalk Server Product Team was able to demonstrate that a single Biztalk Server computer and a single SQL Server computer can support over 94 million messages in a messaging scenario and 37 million orchestrations during a 24-hour period. By scaling the Biztalk Server and SQL tiers to the optimal configuration available in our environment, we were able to process over 181 million messages per day and over 86 million orchestrations. The results were performed in a sand boxed environment by using the class of hardware deployed in many enterprises" ... quoted from the above results..
I would just like to highlight that the above results were done in a sand boxed environment with certain types of adapters and hardware ,, so please have a look above on the exact scenario used and how they achieved these results.
Also, performance could vary a lot depending on the type of adapters you are using, amount of tracking you are doing, complexity of the orchestrations, messages sizes , extra..
so generally when a customer asks me , "How many Biztalk server would I need ? " ,, my answer is always "it depends ! " .. to make life easier for my customers, i give them these simple questions to fill for each application that will be connected to Biztalk...
Application Name :
- Platform and Database
- Does it have APIs? , if yes, what is the protocol and format supported? (for example XML over HTTP, method calls over TCP/IP, flat files uploaded to FTP Folder)
- Average Number of Incoming Messages / second
- Average Number of Outgoing Messages/Sec
- Average Message Size in Kilobytes
- Messaging Pattern (Synchronous /Asynchronous)
- Required Latency in Millisecond (in case of synchronous messaging)
- Is there batch processing , if yes, what is the size of the batch in megabytes
By answering the above questions, we will be in a situation to know whether we are in Low Latency scenario type of integration or more on a high throughput asynchronous type, or maybe even something in between! ... also, we could identify if there is FTP, POP3 or MSMQ adapters being used, and hence the possible need to cluster the Biztalk instances carrying hosting these adapter..
Also, the batch sizes, will give us a guidance on whether to tailor for Higher RAM capacity in the Biztalk Boxes or not,, if we are looking at smaller messages, then the normal RAM recommendation is sufficient.
By combining the numbers of all the applications that will be connected to Biztalk, you will be able to have a rough idea on how many servers that you would need...
again, this is not an official way of sizing the capacity planning for your Biztalk environment, you should always refer to the published "Performance and Capacity Planning" available http://technet.microsoft.com/en-us/library/aa577523(BTS.10).aspx, however, this is just my way to make my life easier when you are still at very early stages of assessment..
Cheers
Ahmed Farrag