2

A little background:

We have a windows service which gets data from an external server and stores them on a local DB (SQL server 2012).

The external server sends more than 1500 “messages” per second, but our storage rate is almost 500 msg/s for the local server ( the windows service and database are on a single VM with Xeon E5520 and 16 GBs of RAM on a HP G7 Server/ windows server 2012).

When I move the service and DB to my local PC, the storage rate rises to 1100 msg/s.

I did the test on multiple PCs (core2 duo and core i5) and Servers (HP G7 and G8, VM and physical servers), the result was the same: all PCs get messages in a way better rate than our servers.

We thought It might be a network problem, but it was not.

I did a “Memory Transaction Throughput” test with “Sisoft Sandra” on Servers and PCs and figured out that our PCs do a much better job than the servers . the minimum PC result was 5.4MTPS (on a core2 duo E7400), the maximum server result was 3MTPS (on a HP Proliant DL380P with Xeon E5-2650).

I tend to conclude that there’s something wrong with Xeon processors, but that would be a strange conclusion since there are dozens of Xeon DB Servers around the world.

Am I missing something? Is there a special configuration on the BIOS to solve this problem?

Saber
  • 21
  • 1
  • You could try some tuning. What are the clock speeds of the various processors involved? Are your A/B tests using the same switching infrastructure? Have you made *any* BIOS changes to the server? – ewwhite Jul 15 '14 at 08:39
  • @ewwhite thanks for the reply and comment. as I wrote in the question I did the test on different processors (with different clock speeds) but the infrastructure was (almost) the same. haven't change any thing in BIOS yet. – Saber Jul 15 '14 at 09:42
  • 1
    Try the low-hanging fruit first... enable the "Maximum Performance" profile in the HP ProLiant BIOS. – ewwhite Jul 15 '14 at 09:53
  • 3
    Literally *DOZENS!!* – Wesley Jul 16 '14 at 00:58
  • How fast is the RAM? – Shane Madden Jul 16 '14 at 00:58
  • I changed the Power profile to “Maximum Performance” -on a physical HP server (2*Xeon E2650 2GHz, 32 cores, 64GB Ram (1066 MHz)- and performance increased by almost 20%. It’s still slower than my Core2 duo (2.8 Ghz) PC with 4 GB (800 MHz) Ram! – Saber Jul 16 '14 at 08:36

1 Answers1

3

Since this is a messaging application, and you're using HP ProLiant servers, I'd treat this as a low-latency configuration... If this is a easily-reproducible test, can you try the following?

  • Update your server firmware. Make sure the system BIOS and NICs are on current firmware. If you use the HP Service Pack for ProLiant bootable DVD, it will handle all of the relevant components.
  • Set your ProLiant servers to the "Maximum Performance" power profile. This will disable the processor C-states and may be helpful for what you're doing.
  • Prefer the bare-metal solution if it makes more sense logistically. Virtualized networking always carries some overhead.

Look at some of the tuning recommendations we use for messaging-heavy applications.

ewwhite
  • 197,159
  • 92
  • 443
  • 809