The Database Server Bottleneck

There is almost always a bottleneck in hardware tests — ours was the database. The majority of web applications require a database server for data retrieval and storage. We used Microsoft SQL Server 2000 as our back-end database server for these tests. Prior web server tests that we’ve performed have been on single or dual CPU servers and have reflected accurately the performance of the hardware on which the tests were run. When we started running the tests on the servers, specifically the Opteron, we found that the tests had hit a wall and were not reflecting accurately the performance of the hardware. The issue was I/O, the largest bottleneck in any database server. We were putting so much load on the servers to get the CPU working hard that the database server I/O was maxed out. This, of course, caused the web tests to hit a performance plateau as each request run against the web application server has to wait for the database to complete its data transaction.

So how do you get rid of an I/O bottleneck? Well, if you have the resources, you throw more disks at the problem. The problem with that solution is it gets expensive to have massive RAID arrays that are just used for testing purposes and have to be continually upgraded as hardware improves. To get around this expensive issue, we used the fastest and most inexpensive storage medium you can — memory. We created a RAMDISK and put the database on that new drive. RAMDISK has been around for years and has matured over the years to solutions that can be formatted as NTFS drives, which are easier to manage. Effectively, a RAMDISK partitions a portion of physical memory and allows it to be formatted as a drive letter that is available to the operating system.

Once we solved our bottleneck, the testing began and as you read on, you’ll see how the different platforms performed while under real-world web application load.

The Web Application Server Test Environment The Test
Comments Locked

43 Comments

View All Comments

  • Zuni - Thursday, December 18, 2003 - link

    TrogdorJW, I think you missed the point behind why a ramdisk was used. Every web application is governed by the time in which it can retrieve information from the database. We are testing the performance of a cpu in a web application server environment not in a database environment. The entire reason we used a RAMDISK was to ISOLATE the cpu not to hold it back by something else. Obviously in a production environment you hardly ever use a ramdisk. Most of them only format up to 4GB using AWE extensions. Again we wanted to ensure that the cpus were being taxed and were not being bottlenecked by the database in this instance.

    Cheers, and thanks for the feedback!
  • Visual - Thursday, December 18, 2003 - link

    I got a couple of questions...

    1) Is this Microsoft Windows 2003 Enterprise Server that ran on the opteron a 64-bit OS version? And is the IIS a 64-bit app? I guess not... But I didnt see it mentioned in the article, nor did I see a mention of the possible performance increase for the opterons with 64-bit software. I skipped a big part of the article though, because I'm in a hurry now, so if that info is in the article, forgive me.

    2) Why does the DB server has just 2GB ram? and probably 1GB used up for the ramdrive, so just 1GB RAM left for the DB server? While the webservers had a whooping 4GB ram... I dont have a clue about servers, but I'd imagine the database server would need more ram than the web server, seeing that it is the one dealing with all the data. Well I guess if the whole database could fit on a ramdrive of 1GB, it was small enough so RAM size would not be an issue...
  • lockup - Thursday, December 18, 2003 - link

    TrogdorJW, although the database had to use a ramdisk to prevent it from being the bottleneck in this case, that doesn't mean these benchmarks are less valid in the real world.

    There are some pretty hefty databases out there with wintel appservers on the front end. Also, there are web applications that are doing a bit more than taking an id, getting some data on a select statement and formatting it in HTML. For systems where performance has been a focus, you may see methods implemented in the application to take processing away from the db and in to the application.

  • skiboysteve - Thursday, December 18, 2003 - link

    you talked about why the new revison k8s can use ddr400, then you use ddr333

    why
  • TrogdorJW - Thursday, December 18, 2003 - link

    Wow... nice performance from the AMD system!

    Too bad that, for the time being, it won't help a whole lot. The same people who bought Athlon MP will look to the Opteron as an upgrade, but unfortunately, most of the Intel camps will probably remain Intel for the present. Things to think about:

    1) As this review so clearly shows, servers are full of different bottlenecks. When tied to a DB server with a RamDisk holding the entire database, the Opteron killed the Xeon. But, it also mentions how in order to put any real strain on either CPU, they *had* to use a RamDisk on the DB server. That's not an option with real databases, usually... unless you're into having RamDisks that are several GBs in size! So, in real world scenarios, it looks as though the conclusion is that you'll need to have one hell of a database server before you even think about going with a server using either of these CPUs.

    2) AMD is not "easy as Dell." I hate Dell. We use them at my work. My company is a Fortune 500 company (top 100, actually). Guess who isn't going to use AMD in the office anytime soon....

    3) This sort of goes off of the last point, but we have 8 Dell servers in the data center I work in. All of them are Xeon dual proc systems. Actual amount of work done by these systems? Virtually NOTHING! Two of the systems aren't even in use at all! So, while the Opteron may be much more powerful, for big companies that may not even matter. We could have Pentium III Xeon servers, and they would still be more than fast enough. (We also have to IBM R6000 servers running a custom client-server application. Neither Intel nor AMD will get this server's spot!)

    4) CRAMITPAL supports AMD. People like CRAMITPAL support AMD. That does much more harm than good! I don't know about you, but if I had some stupid ass moron like CRAM trying to convince me to use an AMD system, I would do anything but what he recommended. That's where fanatacism gets you. So next time any of you think of bashing Intel and acting the fanboy, remember that emotions only hurt in big business. You can show cold hard facts, but if you're trying to get a CEO to switch from Intel to AMD, you're going to need a whole helluvalot of support. As the saying goes, no one ever got fired for recommending Intel. Sad, but true.

    5) The Itanium stuff... well, it will certainly be interesting to see a matchup. 2 and 4 way Itanium servers are not the real problem, though. Sure, the Opteron might win out in those competitions (I'll wait to see the numbers), but the real Itanium stronghold is stuff like the 128 way Itanium systems that are mentioned. That's just way out of the league of AMD right now. Sorry. But I hope that in the 64-bit competition, we'll get to see some systems with 8 GB of RAM or more in them, since that's where 64 bit computing actually becomes a real necessity.

    6) Also concerning the Itanium, SpecINT and SpecFP numbers can be almost completely meaningless as a performance comparison, depending on what you're using the server for. I don't have any in depth knowledge of the inner workings of Itanium servers, motherboards, etc. However, if I/O becomes a major part of the benchmarking, I believe I've heard that the Itanium does quite well in that arena. Like I said before, we'll have to actually see the benches before anything can be determined. (Unless someone has a *reputable* link to a comparison between Itanium 2 and Opteron?)

    Okay, enough babble. Cool article. Cool system. I don't need it - never will, probably - but cool, regardless.
  • sprockkets - Wednesday, December 17, 2003 - link

    I love glueless operation. But that's just it, we won't sell AMD as #1 even though it's better cause of Intel's crap as being better somehow. Yeah, they are much slower, but all they care about is whether Dell sells them. At least there are some who don't listen to what's the standard, i.e. we must use microsoft instead of linux and intel instead of AMD.
  • TheRealMandak - Wednesday, December 17, 2003 - link

    How come you did not use PC3200 DIMM's ?

    I look forward to the next test.

    If any want more of this try: http://www.aceshardware.com/read.jsp?id=60000275
  • Zuni - Wednesday, December 17, 2003 - link

    Ryan, the RAMDISK actually has nothing to do with the performance of the web servers..Remember we used a separate db server for the backend. The webservers didnt run a RAMDISK the databse server did..We measured the performance of the webservers not the database server.
  • RyanVM - Wednesday, December 17, 2003 - link

    I'm wondering how much the memory controller affects RAMDISK performance..

    It seems to me that a RAMDISK would be eating up the Xeon's already limited amount of available bandwidth. Add to that the on-die controller of the Opteron, and suddenly a RAMDISK might not be as apples-to-apples as one would hope.

    I'd be interested in seeing performance testing with a lot of fast drives in a RAID5 array :P.
  • Pandaren - Wednesday, December 17, 2003 - link

    Superbike, don't encourage this extremist. Cult tactics promoted by Apple dihards never worked (2% marketshare), and the same tactics won't help AMD.

    Argue on facts, not emotional fluff. Turning this into a "Good versus Evil" argument only destroys the credibility of the person posting the argument (and hurts the reputation of AnandTech in general if people see nothing but flame wars).

Log in

Don't have an account? Sign up now