Huge performance differences between server 2003 & 2008, multi-processor
Greetings,I have two identical Dell blades
(Specifically, they are E5450, dual 3.0GHz Quad-core Xeon processors --
so 8 cores total in each server), 4.0GB RAM.One
of these was purchased from Dell just before Server 2008 was available,
and thus it has Server 2003 R2 Standard Edition Service Pack 2.The other Dell blade was purchased with Server 2008 Standard, Service Pack 1.So
physically, they are identical aside from the OS. I have the same
application which is a very data-intensive (it handles incoming message
feeds from futures trading exchanges, tens of thousands per second).
The data comes in (via multicast UDP) on different "channels" -- and each channel subscribes to a different IP address and gets its own processing thread in my application. For every message that comes in, I do some processing on the message,
and sometimes I forward the processed message on to listeners, etc.
That's somewhat irrelevant. What I'm noticing, however, is that on
the Server 2003 machine, messages are queueing up FAR more than they
are on the 2008 machine -- I look at queues on a per-channel basiss. It's almost uncanny how much more so -- on
the 2008 machine, my message queues (that is, messages that are waiting
to be processed) never really go above 100 in size -- this is great.
However, on the Server 2003 machine, they can sometimes get up well
over 25,000 (and I'm running them in parallel, meaning I'm not testing
the '03 machine during heavy message periods and the '08 during slow --
it's the same test period). It's like if one channel gets a heavy peak in data, it affects all the other channels, and then it's a snowball effect where each queue starts growing exponentially until a big lull in traffic, then they can all catch up. It's as if the server 2008 machine is much better keeping the individual threads on an even keel.What I'm wondering
is: is Server '08 just that much better at utilizing multiple
processors? Or are the speed gains I'm seeing a result of more
efficient *networking* processes on the '08 side? Thanks in advance,Rick
October 3rd, 2008 4:21pm
Hi!By your post i got curious about 2008 Network and what i googled it really seems that new TCP/IP stack got some improvements.Features of the Next Generation TCP/IP StackNew mechanisms for protocol stack offload The Next
Generation TCP/IP stack can offload the processing of TCP and other
types of traffic to Network Driver Interface Specification (NDIS)
miniport drivers and network interface adapters. Offloading TCP and
other protocol processing can improve performance for high-bandwidth
networks or high-volume servers. New support for scaling on multi-processor computers The
architecture of NDIS 5.1 and earlier versions limits receive protocol
processing to a single processor. This limitation can inhibit scaling
to large volumes of network traffic on a multi-processor computer.
Receive-side scaling (RSS) resolves this issue by allowing the network
load from a network adapter to be balanced across multiple processors.
For more information, see Scalable Networking with RSS. Automatic configuration of stack settings based on different network environments The
Next-Generation TCP/IP stack automatically senses the network
environment and adjusts key performance settings, such as the TCP
receive window. Improved stack auto-tuning and configuration reduces
the need for manual configuration of TCP/IP settings.
http://technet.microsoft.com/fi-fi/library/bb878108(en-us).aspx
Next Generation TCP/IP Stackhttp://technet.microsoft.com/en-us/network/bb545475.aspx Henry Eklf :: Just one random IT-guy more.
Free Windows Admin Tool Kit Click here and download it now
October 3rd, 2008 4:33pm