.comment-link {margin-left:.6em;}

Ben Cops

Wednesday, September 23, 2009

64bit XLANG host memory usage, virtualisation overhead & optimising filegroups for the BizTalk databases

Have a look at Ewan Fairweather’s very interesting webcast on BizTalk 2009 performance.  He says they saw a decrease in performance moving from 32bit to 64bit because the default settings for memory allowance for the XLANG hosts (unchanged from 32bit to 64bit) cause excessive dehydration (~70 orchestrations a second, when none should be dehydrated) at memory usage levels appropriate for 64 bit processes.  By optimising these he saw a 33% increase in performance, so if you’re running BizTalk on 64bit this is definitely something to look at during the test and tune cycle.

Default
Optimised
VirtualMemory ThrottlingCritera


OptimalUsage
900
6000
MaximalUsage
1300
6300
PrivateMemory ThrottlingCriteria


OptimalUsage
50
700
MaximalUsage
350
1000
PhysicalMemory ThrottlingCriteria
disabled

Descriptions of the settings here.
Another interesting point is that they showed scaling from 2 to 3, 4 BizTalk servers all doing the same work with one messagebox server caused a performance decrease due to excessive polling on the database.  Performance increased for 3+ BizTalk servers once 3 messagebox SQL servers were used.
They also tested physical vs virtual server performance and saw that virtualisation carries the following overhead:
  • Throughput is down by 13%
  • Latency is up by 15%
One of the other items pointed out is a SQL script that segregates out various objects in the messagebox schema to different file groups.  This caused significant performance improvements.
Optimising Filegroups for the Databases
Also some further links of interest:
BizTalk Server 2009 Performance Optimization Guide
Microsoft BizTalk Server 2009 Operations Guide
BizTalk Server 2009 Hyper-V Guide
Richard Seroter - Interview with Ewan Fairweather

Tuesday, September 08, 2009

Timezone error in ESB toolkit 2.0 - Input string was not in a correct format

Well done to Payal for working this one out.
When you look at the portal webpage on a computer set to the Indian timezone offset (5.5) rather than the UK (currently 1) you get the following error

Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.FormatException: Input string was not in a correct format.

Source Error:


Line 19: if (!string.IsNullOrEmpty(tzoqry))
Line 20:
Line 21: Session["tzo"] =int.Parse ( tzoqry);
Line 22: if (Session["tzo"] == null)
Line 23: //need this to make it work in production


This is because the timezone is passed in the querystring you're redirected to:

http://localhost/ESB.Portal/Home/Homepage.aspx?tzo=5.5

And tzo=5.5 does not parse to an int. If you look at it on a UK machine you're redirected to

http://localhost/ESB.Portal/Home/Homepage.aspx?tzo=1

And it works...

BUG.

ESB toolkit on 64bit

I started with this and gave up - better to go with the flow at the time.
However, here's someone who persisted:

Raj on installing ESB Toolkit 2.0 on Win 2003 64 bit OS