"Order Entry" Stress Test: Measuring Enterprise Class Performance

One complaint we've historically received about our Forums database test was that it isn't strenuous enough for some of the Enterprise customers to make a good decision based on the results.

In our infinite desire to please everyone we worked very closely with a company that could provide us with a truly Enterprise Class SQL stress application. We cannot reveal the identity of the Corporation that provided us with the application because of non-disclosure agreements in place. As a result, we will not go into specifics of the application, but rather provide an overview of it's database interaction so that you can grasp the profile of this application and better understand the results of the tests (and how they relate to your database environment).

We will use an Order Entry system as an analogy for how this test interacts with the database. All interaction with the database is via stored procedures. The main stored procedures used during the test are:

sp_AddOrder - inserts an Order
sp_AddLineItem - inserts a Line Item for an Order
sp_UpdateOrderShippingStatus - updates an status to "Shipped"
sp_AssignOrderToLoadingDock - inserts a record to indicate which Loading Dock the Order should be shipped from
sp_AddLoadingDock - inserts a new record to define an available Loading Dock
sp_GetOrderAndLineItems - selects all information related to an Order and it's Line Items

The above is only intended as an overview of the stored procedure functionality; obviously the stored procedures perform other validation, and audit operations.

Each Order had a random number of Line Items, ranging from one to three. Also randomized was the Line Items chosen for an order, from a pool of approximately 1500 line items.

Each test was run for 10 minutes and was repeated three times. The average between the three tests was used. The number of Reads to Writes was maintained at 10 reads for every write. We debated for a long while about which ratio of reads to writes to would best services the benchmark and we decided there was no correct answer... so we went with 10.

The application was developed using C# and all database connectivity was accomplished using ADO.NET and used 20 threads, 10 for reading and 10 for inserting.

So as to ensure that IO was not the bottleneck, each test was started with an empty database and expanded to ensure that autogrow activity did not occur during the test. Additionally, a gigabit switch was used between the client and the server. During the execution of the tests, there were no applications running on the server or monitoring software. Task Manager, Profiler, and Performance Monitor where used when establishing the baseline for the test, but never during execution of the tests.

At the beginning of each platform both the server and client workstation was rebooted to ensure a clean and consistent environment. The database was always copied to the 8 disk RAID 0 array with no other files present to ensure that file placement and fragmentation was consistent between runs. In between each of the three test the database was deleted, the empty one was copied again the clean array. SQL Server was not restarted.

AnandTech Forums Database Test Results Stored Procedures per Second Analysis
Comments Locked

58 Comments

View All Comments

  • Jason Clark - Tuesday, March 2, 2004 - link

    Pumpkin, maybe next time there is 4GB of DDR400 ECC laying around we'll give it a run. It wasn't readily available to us when these tests were run. And in all honesty I doubt it would change any numbers by anything more than a percent. The bigger picture would remain the same.

    Cheers.
  • Blackbrrd - Tuesday, March 2, 2004 - link

    It would have been real interesting to see a comparison with the Athlon MP processor platform...
  • Pumpkinierre - Tuesday, March 2, 2004 - link

    #24 Opterons are now specified for DDR 400. So you should have tested them (and all the cpu's) at their maximum spec.. It might have made the difference in the 2way test where the opterons were close but not quite up to the Xeons.
  • Jason Clark - Tuesday, March 2, 2004 - link

    William, all we had on hand were the Xeons tested... we had requested 1MB parts but they didnt make it.

    hirschma
    Tyan S4880 is one that I know of, and the system we used is a reference amd system ("Quartet"). Appro makes a server based on it I think and a few other companies.
  • Jason Clark - Tuesday, March 2, 2004 - link

    Ski.

    Slow DDR333? It isn't slow, and it was what we had and it remained the same across platforms. These are servers not watercooled tweaked out systems running DDR500 :) This is a CPU test not a memory round up guys.
  • Jason Clark - Tuesday, March 2, 2004 - link

    zomg555 broaden your thinking to an IT director who is about to spend 50K on a server that has to last him X years. Do you spend it on a cpu capable of 32 bit only or a cpu capable of 64 bit that is also faster in 32 bit?. Then, look at the cost of each platform as per our cost graphs.



  • William Yu - Tuesday, March 2, 2004 - link

    If you already have 4P Xeon servers, there's no point in switching. But for a new 4P server, the difference isn't just 10%. It's $8800 based on the list price difference between the Xeon MP 4MB 3.2 and the Opteron 848. If it's somebody else's money, what the hell, buy the Xeon. If you have a direct stake in the financial status of the company...
  • zomg555 - Tuesday, March 2, 2004 - link

    I was a little surprised by how close this test was. 10% more performance isn't enough to get most shops to switch from Intel Xeon to a new platform.
    It would have been interesting to see some tests with more than 4GB of memory, though. In these tests, the Xeons weren't paying a PAE bounce penalty, which would be sapping a lot of performance in servers with more physical memory.
  • hirschma - Tuesday, March 2, 2004 - link

    What hardware was used on these tests, just out of curiousity? Where can one get 4-way boards for Operton? I'd sure love to build a monster like that.

  • William Yu - Tuesday, March 2, 2004 - link

    Can you run these tests on the "crippled" Xeons with no L3 and 1MB L3? That would give a good picture for those who currently have Xeons and are exploring upgrades to their servers. (I.e., popin replacement for $$$ versus wholesale replacement.)

Log in

Don't have an account? Sign up now