Building or Buying a High Performance, Low Cost Desktop Machine for SQL Server Development and Testing

There was a lengthy discussion on Twitter this morning, where one of my friends, Grant Fritchey (Twitter) was asking the community for suggestions about a good hardware setup that would enable him to run two to three concurrent virtual machines, all running SQL Server. My initial thoughts ran to buying or building either an Intel Socket 1366 or Socket 1155 platform based desktop system that can be used as a development or test server. With a machine based on either one of the platforms, you will have more CPU capacity than many production database servers. You will be limited somewhat by RAM capacity, but your more likely bottleneck will be I/O capacity, compared to a real rack mounted server connected to a good I/O subsystem.

Intel Socket 1366 Platform

This platform is a little older, but it does have six DDR3 memory slots. It supports a maximum of 24GB of RAM, which should be sufficient for a number of concurrent virtual machines. The newer 1366 motherboards usually have two 6Gbps SATA III ports (that unfortunately use a slower Marvell controller), and a couple of USB 3.0 ports. There are two likely processors that I would choose for a 1366 motherboard, the Core i7-970 or the Core i7-960. Either one of these processors would work well in one of the newer Socket 1366 motherboards like the ASUS Sabertooth X58 LGA 1366 Intel X58 SATA 6Gb/s USB 3.0 ATX Intel Motherboard ($184.99 at NewEgg).

The more expensive one is the 3.2GHz 32nm Intel Core i7-970 “Gulftown” ($579.99 at NewEgg).  This CPU has six cores, plus hyper-threading, so it has 12 logical cores. It is relatively affordable for a Gulftown CPU (compared to around $1000 for a Core i7-990X), but it does not offer twice the capacity of the Core i7-960, even though it costs twice as much. It is the desktop equivalent of an Intel Xeon W3670.

The more affordable one is the 3.2GHz 45nm Intel Core i7-960 “Bloomfield” ($284.99 at NewEgg).  This CPU has four cores, plus hyper-threading, so it has 8 logical cores. I would argue that it will give you much more bang for the buck compared to the Core i7-970. It is the desktop equivalent of an Intel Xeon W3570.

Intel Socket 1155 Platform

This is the newer, initial desktop Sandy Bridge platform, with four DDR3 memory slots. It supports a maximum of 32GB of RAM (if you can find and spring for 8GB sticks of DDR3 RAM), but it is more likely you will be using more economical 4GB sticks right now, so you will be limited to 16GB of RAM. This should be plenty of RAM for three or four concurrent virtual machines. The better Socket 1155 motherboards will have two native 6Gbps SATA III ports, plus two more Marvell 6Gbps SATA III ports. They also typically have six 3Gbps SATA II ports, usually with hardware RAID support. A good example is the ASUS P8Z68-V PRO LGA 1155 Intel Z68 HDMI SATA 6Gb/s USB 3.0 ATX Intel Motherboard ($209.99 at NewEgg). The best processor for this platform right now is the Core i7-2600K.

The 3.4GHz 32nm Intel Core i7-2600K “Sandy Bridge” ($314.99 at NewEgg), is the best Sandy Bridge desktop CPU available right now. It has four cores, plus hyper-threading for a total of eight logical cores. It uses the newer Turbo Boost 2.0 to go up to 3.8GHz on individual cores. It is the desktop equivalent of the Intel Xeon E3-1275. A Core i7-2600K processor will have roughly equivalent CPU performance to a Core i7-970, for about half the cost. It will also use less electrical power, and run cooler. The Sandy Bridge processors have pretty decent integrated graphics that are more than sufficient for a desktop “server” machine. Depending on which motherboard chipset you choose (either H67 or Z68 based), you can choose to use the integrated graphics instead of a discrete graphics card. This saves electrical consumption and reduces your hardware cost, but the integrated graphics will use a little bit of your available RAM.

Currently, the DDR3 RAM used by both the 1366 and 1155 platforms is very affordable. For example, you can get a 16GB kit for $139.99. The next big choice is the type and quantity of storage that you decide to get, which depends on your needs and budget. Solid State Drives (SSD) are becoming more affordable, but they are still pretty expensive compared to conventional rotating disk drives. On the other hand, they offer much better I/O performance, which is very important for virtual machines. The new generation 6Gbps SATA III SSDs offer much better throughput performance than the older 3Gbps SATA II SSDs, especially when they are plugged into a 6Gbps SATA III port, but any SSD is going to offer excellent performance compared to a magnetic drive. The larger capacity, (and more expensive) SSDs perform better than the small capacity models in the same line because they use more flash memory chips with more internal I/O channels.

If you have money to burn, you can get a 480GB OCZ Vertex 3 SSD for $1199.00 at NewEgg. A slightly more affordable alternative would be a 240GB OCZ Vertex 3 Max IOPS SSD for $539.99 at NewEgg. Going down in price, you can get a somewhat older 128GB Crucial RealSSD C300 SSD for $231.99 at NewEgg. Depending on your space and performance needs (and your budget), you might want to use a mixture of different storage types, starting with a relatively small and affordable SSD boot drive combined with several large traditional hard drives. I really like the larger Western Digital Black drives, such as the 2TB WD2002FAEX for $149.99 at NewEgg.  When you look at these big WD Black drives, make sure to get the 6Gbps models with the 64MB cache instead of the older 3Gbps models with a 32MB cache.

If you are going to build a system from parts (which is really not very hard), you will also need a case, power supply, and an optical drive. You also might need an inexpensive discrete graphics card. If you don’t want to mess around with building a system yourself, you can either buy a “white box” system that uses similar components,or you could buy a system from a larger vendor, and possibly add more RAM and drives as needed. One way or another, you can have a very powerful system for anywhere from $1000 to $1500.

About these ads
This entry was posted in Computer Hardware, Processors, SQL Server 2008, SQL Server 2008 R2, SQL Server Denali and tagged . Bookmark the permalink.

15 Responses to Building or Buying a High Performance, Low Cost Desktop Machine for SQL Server Development and Testing

  1. Matt Velic says:

    Very nice article, Glenn. Left me salivating… which is a nice way to say that I wish I had the budget to implement a nice, new, SQL Server dev machine.

  2. Gail Shaw says:

    I’m in the middle of upgrading two desktop machines, one for general use + games, one for file server/AD/virtual host.

    Gone for the older i7 on the desktop (quad-core, hyperthreaded, tri-channel memory, 12GB), going to get the newer Sandy-Bridge for the server and go for 16GB memory. Should serve for the time being…

    Upgrade hardware for the general machine wasn’t that expensive, haven’t started spec’ing the server machine yet, but it looks like it won’t break the bank.

    • Glenn Berry says:

      I like the fact that you are not afraid to build and configure your own hardware. Many people seem to be nervous about that, but I think you learn some relevant skills while you do it. Plus it is fun (at least for me)!

      • Gail Shaw says:

        Just an update…

        The upgrade of the desktop took maybe 2 hours (just a motherboard/processor/memory replace). Despite a completely different motherboard chipset, completely different processor, Windows 7 booted clean to the desktop first time. 5 or so minutes of installing drivers and a reboot later, everything worked.

  3. phobosq says:

    What about building it on AMD? Phenom II X6 1090T is at $179 at the moment, plus if you go for AM3+ motherboard (e.g. Asus M5A99X is at 159) you could refit it later with next-generation of AMD CPUs.

    • Glenn Berry says:

      Unfortunately, an AMD Phenom II X6 1090T just cannot compete performance-wise with either a 1366-based Core i7 or a Sandy Bridge i7. I really hope that the AMD Bulldozer (when it finally is released) will be more competive with Intel. That would be good for everyone!

  4. Wes W. says:

    Recently built something very similar:
    E-1270
    Asus P8BWS mobo
    16GB ECC RAM
    reused pair of Crucal C300’s (RAID0) on Intel’s softraid and sold my LSI 9620-4i. Data safe on large RAID1 array.
    …VERY pleased! The power saving and low noise alone would have been worthwhile over my older dual dual-core Opteron system, but the performance is why I really built this one.

    I used to build many machines in the early and mid 90’s, but this was the first machine I’ve built in at least a decade or so.

    Since when did CPU’s no longer have pins to worry about bending/breaking? Builds these days are much easier than they used to be.

    • The two general types of sockets are PGA (pin grid array) and LGA (land grid array). PGA uses pins on the CPU and LGA has pins in the motherboard socket. The primary reason to use LGA instead of PGA is that with LGA you can fit more contact points per area unit. Other reasons that have been stated is that heat transfer can be improved be ensuring a level mounting of the CPU heat transfer pad and that power distribution can be improved because of the increase in possible contact points. It is also often cheaper to replace a motherboard with bent pins instead of a CPU with bent pins.

      Intel switched to LGA sockets for its consumer CPUs with LGA 775 (aka Socket T) in 2004 with the Prescott Pentium 4. In 2006 Intel switched their servers to Socket 771 (aka Socket J).

      AMD is still using PGA sockets for its consumer CPUs (looks like it will continue with upcoming FM2 socket in 2012). They switched to LGA for their server sockets with Socket F(+) in 2006. Socket F(+) was replaced with Socket C32 and G34 in 2010.

  5. Pingback: Some Common Disk Drives Compared | Glenn Berry's SQL Server Performance

  6. Bharat Kapoor says:

    Hi Glenn,
    I really need your expert advise, I am considering to bought a new cpu for my Animation & VFX work which is heavily rely on processor and RAM. I have pen down on two options (i7-970 & i7-2600K) but i am very much confused about which one to go for. As there are so many people recommending Sandybrigde (i7-2600K) but some people are saying as the work i do require more cores and work heavily, so i should choose i7-970.

    It will be great if you can give me some suggestion on it.

    Thanks

    • Glenn Berry says:

      The overall performance of those two processors is pretty close on most benchmarks. Right now, you will be effectively limited to 16GB of RAM with a 2600K (since 8GB DDR3 DIMMs are pretty hard to find for desktop machines). The X58 chipset used by the i7-970 supports six slots for RAM, so you can easily have 24GB of RAM. On the other hand, a Socket 1155 motherboard used by the 2600K will probably be compatible with the 22nm Ivy Bridge, and it will also use less power. I would see if any of the hardware review sites have run any benchmarks that use the same program or similiar programs to what you will be using.

  7. Peter M says:

    I suggest PCI-based SSD (eg. OCZ RevoDrive x2 or RevoDrive 3) would outperform an SATA-based SSD, at comparable price point.

  8. Pingback: Building A New Storage Test Server | SQL Server Input/Output

  9. atommc says:

    I have a SQL issue that might interest the readers of this thread. I’ve got an two old junky Core Duos that can outperform my brand new Core i7. I have no idea why. Please help if you can:
    http://www.sql-server-performance.com/forum/threads/sql-core-i7-poor-performance.33142/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s