Linux 2.6 and Hyper-Threading - Test Systems and Configuration
Published on 2004-02-23 12:10:07 By: Jim_

The hardware breaks down as follows:

Dual Xeons Pentium 4 Northwood Pentium 4 Prescott
CPU
2x 3.2GHz Xeons w/ 1MB L3 Cache
3.2Ghz P4 'Northwood' 3.2E GHz P4 'Prescott'
Motherboard
MSI Master LS2
Shuttle FB75 Intel D875PBZ
Chipset
Intel E7505
Intel i875P Intel i875P
Memory
2x 512MB Crucial PC2700
2x 512MB Kingston PC4000 2x 512MB Kingston PC4000
Storage
Western Digital 400JB
Western Digital 400JB Western Digital 400JB
OS
Gentoo Linux 1.4
Gentoo Linux 1.4 Gentoo Linux 1.4
Kernel 2.6.2 2.6.2 2.6.2

As I mentioned in my introduction, one of my biggest concerns when preparing to run the benchmarks for this article was ensuring configuration consistency across all three machines. Given that the hardware in each machine was so similar, this actually ended up being really simple: I used the same hard drive and OS install in each machine! The integrated NICs on the MSI Master LS2 and the Shuttle FB75 ended up being identical (Broadcom NetXtreme) and I compiled in support for the Intel Pro 1000 CT on the Intel D875PBZ.

I'm a big believer in monolithic kernels, so if you're brave enough to dig into my kernel .config you'll notice that support for everything that I require is compiled directly into the kernel and I don't rely on kernel modules. It may be less flexible, but that's just the way I prefer it.

Let's dig into the specific software versions and configuration used in my testing:

  • Operating System: Gentoo Linux 1.4.3.13
  • Kernel version: 2.6.2 (.config)
  • GCC version: 3.3.2 / glibc version: 2.3.2
  • Java 2 JDK version: Blackdown 1.4.1
  • Apache version: 1.3.29 (./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a)
  • MySQL version: 4.0.17 (./configure --with-low-memory --with-mysqld-user=mysql)
  • PHP version: 4.3.4 (./configure --enable-track-vars --with-mysql --with-apache=../apache_1.3.29 --with-gd)

Well, that's a reasonable start. I know a lot of our regulars are probably thinking: "Gentoo? Jim, aren't you a slackware lover?" Generally, that is the case. For this article however, I wanted something a little more up-to-date and I was looking for an excuse to give Gentoo a try anyway. I do really like it thus far.

It's important to note that for all compiles the following CFLAGS were used: "-O3 -march=pentium4". Apache, MySQL and PHP were compiled by hand while Blackdown JDK was compiled from portage.

Now that you know a little more about the software installed on my test machines, let's break down the benchmarks I plan on running and what I hope to accomplish with each.

  • Kernel Compiling: This is a favorite. We'll abuse make -j and see how hyper-threading impacts compile performance.
  • BladeEnc: An mp3 encoder parallelized by using MPI.
  • Apache Bench: Bundled with the apache source distribution. We'll take a look at Static HTML web-serving performance.
  • MySQL Super Smack: Curious how hyper-threading impacts database performance?
  • VolanoMark: Java-based chat room benchmark which should hopefully give us a sense of overall Java server performance.

On to the pretty Excel graphs!

[ Back to Page 1 ]
 
[ Next to Page 3 ]