"Order Entry" Stress Test: Measuring Enterprise Class Performance

One complaint that we've historically received regarding 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 its database interaction so that you can grasp the profile of this application, and understand the results of the tests better (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 a status to "Shipped"
sp_AssignOrderToLoadingDock - inserts a record to indicate from which Loading Dock the Order should be shipped
sp_AddLoadingDock - inserts a new record to define an available Loading Dock
sp_GetOrderAndLineItems - selects all information related to an Order and its 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 would best serve the benchmark, and we decided that 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 20 threads - 10 for reading and 10 for inserting.

So, to ensure that IO was not the bottleneck, each test was started with an empty database and expanded to ensure that auto-grow 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 were 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 were 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 tests, the database was deleted, and the empty one was copied again to the clean array. SQL Server was not restarted.


SQL Stress Results "Order Entry" Stress Test results
Comments Locked

97 Comments

View All Comments

  • Visual - Thursday, July 7, 2005 - link

    the intel board that you used, you listed it as SE7620AF2. there is no such thing though, so is it a typoed SE7520AF2 or a yet unreleased board?
  • kaka - Saturday, February 19, 2005 - link

    ??,OPteron is better than xeon!!
  • Fluff - Thursday, February 17, 2005 - link

    But in future it would be handy to touch upon extra features such as differences in remote management, what happens if a cpu fails, if memory fails is there hotswop. As these probably affect a decision as well as performance.

    I believe that people benefit from the sort of technical analysis and simulated real world that Anandtech does but in addition the other factors such as up-time and manangement would be nice to know.

    If a cpu fan / stick of memory fails on a database at the weekend and no one is there to hear the alarm what do the various platforms do?

    If a cpu fails on a dual opteron does that mean it loses all the data attached to that cpu? Does the same happen on a xeon? Will a Xeon keep going with just one - chipkill?

    I'm not sure if this is outside the scope of Anandtech.
  • Jason Clark - Thursday, February 17, 2005 - link

    Hans, you are correct in that they wouldn't be using non supported memory. But, since the board was pre-production and at the time of testing there were no "recommended' memory modules, we had to go with what we had. Word is our issues were bios related and a new bios should address it.

    Cheers
  • Jason Clark - Thursday, February 17, 2005 - link

    Hans, fair enough on the next article we'll include it for those curious.
  • Jason Clark - Thursday, February 17, 2005 - link

    Viditor, we tested with 8GB of memory using PAE and AWE support in SQL. When 64bit versions of sql and windows 2003 are ready we'll be all over it.
  • Viditor - Thursday, February 17, 2005 - link

    BTW, for some Linux spec results, check these out...

    http://www.pathscale.com/pr_021505.html

    Sun Fire V20z server (2xAMD Opteron processor Model 252, SLES9) with PathScale EKOPath Compiler Suite: SPECfp2000 -- 2036, SPECint_rate2000 -- 40.4, SPECfp_rate2000 -- 46.5.

    The Sun Fire V40z server with PathScale EKOPath Compiler Suite (4xAMD Opteron processor Model 852, SLES9): SPECint_rate2000 76.7, SPECfp_rate2000 -- 87.1.

    The Sun Fire V20z server (2xAMD Opteron processor Model 250, SLES8): SPECfp_rate2000 37.2.

    IBM eServer OpenPower 710 (2x1.65 GHz Power5, Linux): SPECfp_rate -- 40.2.

    IBM eServer p5 510 (2x1.65 GHz Power5, AIX): SPECint_rate2000 -- 33, SPECfp_rate2000 -- 43.2
  • Viditor - Thursday, February 17, 2005 - link

    Jason...

    I see you are retesting the HT, but I haven't seen a comment from you about testing 64bit with large memory (>4GB). Is this something you just aren't prepared to do right now?

    Cheers...
  • Viditor - Thursday, February 17, 2005 - link

    "I read viditor comment that said as single"

    Yup...very sorry prd00...my bad!

    "Which is why we aren't going to provide information like that, as it isn't relevant to the target audience or the purpose of the article"

    Fair call Jason, but as this is a beta bios, it might be an important data point...

    sleepless - "Looking at the configuration you show Opteron 250 with a 252. Did you have a problem getting another 252 Opteron for the test?"

    They built 2 test platforms, 1 with dual 250s and 1 with dual 252s...or so I assume (after my last mistake I take nothing for granted)...:-)
  • sleepless1 - Wednesday, February 16, 2005 - link

    Looking at the configuration you show Opteron 250 with a 252. Did you have a problem getting another 252 Opteron for the test?

Log in

Don't have an account? Sign up now