Virtualization PC ~$1400

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.

TomBegins2012

Honorable
Jun 30, 2012
16
0
10,510
Hi Everyone,

After a 4-year hiatus from the IT industry, I'm hoping to get back into it.

I want to build a solid workstation to use as a virtualization platform, which I will use to set up a virtualized training lab and refresh my skills. I hope I could run at least 8 VMs on this system. None should take up a lot of CPU generally.

I have never built my own computer before, and am looking forward to doing so this time. But please be on the lookout for first-time builder errors.

My thought process that went into designing this system:
1. I need a lot of CPU horsepower, thus, i7 3770. But if the 3570 would do the trick, it'd save me some money.
2. I need virtualization features, thus i7 3770 instead of 3770k which lacks some, like VT-d.
3. I need lots of RAM. Starting with 16 GB to save money, but want the option to go to 32 GB later.
4. I need lots of storage space in a redundant and reasonably fast array, so that I don't lose data if a drive fails. Thus, 3 x 2 TB in RAID 5 for 4 TB usable. Plan to use the Intel RAID on the motherboard; not the best, but the least expensive.
5. I want to build a high quality system that will last a few years, but I can't afford top of the line for everything. So I searched for a good motherboard, a good case, a good power supply, etc. Not the best of each, but hopefully quality stuff.


Questions:
Could I save money by downgrading some options, and still have a viable system? For instance, could I get by with 3 x 1 TB (so 2 TB usable) drives? Would a Core i5 3570 work out instead of the i7 3770? I'm not sure how much hyperthreading gets you when you're running VMs.

The Seagate drives I've chosen seem to have a high failure rate, from what people write online. But they are the cheapest 2 TB drives out there, and fast ones too, and this is an expensive machine already. Would I be better off with 1 TB drives from another manufacturer?

What sorts of virtualization platforms would you recommend? I will run both Windows and Linux VMs. I plan to purchase Microsoft TechNet to have licensed training VMs, and could use the Windows 2008 hypervisor. I used to work with VMWare ESX; would ESXi run (unsupported of course) on a platform like this? Anything else out there that might be good to look at?

Does the type of memory I use matter very much for performance? There are a lot more kinds of memory, with many more specs, than when I last was into this sort of thing. I could get RAM that costs twice as much as what I've spec'd, but am not sure what the payoff would be?

For the power supply, I had no idea how to size the power supply. Is 650W a good size? Too much? Too little?

For the CPU fan -- as I mentioned, I've never built my own PC before -- does the CPU come with a stock fan that would be good enough, or do I have to buy a fan?


Thanks for taking the time! Any thoughts and suggestions are most appreciated!


Approximate Purchase Date: This week

Budget Range: Less than $1400. Lower cost is good, but needs to do the job well.

System Usage from Most to Least Important: Virtualization for training purposes

Preferred Website(s) for Parts: Newegg.com

Country: USA

Parts Preferences: Open to anything

Overclocking: No

SLI or Crossfire: No

Additional Comments:


Specifications
PCPartPicker part list: http://pcpartpicker.com/p/b6vv

CPU: Intel Core i7-3770 3.4GHz Quad-Core Processor
CPU Cooler: Cooler Master Hyper TX3 54.8 CFM Sleeve Bearing CPU Cooler
Motherboard: Asus P8Z77-V ATX LGA1155 Motherboard
Memory: Corsair XMS3 16GB (2 x 8GB) DDR3-1600 Memory
Hard Drive: Seagate Barracuda 2TB 3.5" 7200RPM Internal Hard Drive
Hard Drive: Seagate Barracuda 2TB 3.5" 7200RPM Internal Hard Drive
Hard Drive: Seagate Barracuda 2TB 3.5" 7200RPM Internal Hard Drive
Video Card: Asus Radeon HD 5450 512MB Video Card
Case: Cooler Master CM 690 II (Black) ATX Mid Tower Case
Power Supply: Cooler Master 650W ATX12V Power Supply
Optical Drive: Asus DRW-24B1ST/BLK/B/AS DVD/CD Writer
Monitor: Acer S220HQLAbd 21.5" Monitor
Keyboard: Logitech Wireless Combo MK260 Wireless Standard Keyboard w/Optical Mouse

 
Solution
As a heavy VMWare user I'll give you a few words of advice.

1. You may want to consider going with an X79 platform. Not only do they all have VTd (C1 stepping processors have it disabled due to a bug, but these processors have long since left the shelves) but the extra cores, cache and memory bandwidth are great for virtual machines. Going with X79 adds a few hundred bucks but it will pay off in the long run. There's more than enough horsepower there to use it as a multipurpose machine. VTx works by creating a process for each virtual CPU. The VMM traps any privileged instructions executed within this thread context and handles them safely. Thus, there can exist some thread lag because the guest isn't aware that it doesn't have access...


Hi there,

Hyperthreading shouldn't be a problem. The hardware scheduler simply works on two threads at once to utilize resources more efficiently. This can result in a minor performance impact on a per-thread basis when a core is running two threads that are fighting for the same shared resources but the impact is extremely minimal and less than the total gain. Overall Hyperthreading should show gains of 10%-15% across the board.

A hyperthreaded CPU has exactly the same execution resources as an equivalent CPU without hyperthreading.

Unfortunately this can look strange to Windows and to those who aren't initiated in the way Hyperthreading works. Windows only addresses logical processors regardless of the total execution capacity of the system. This means that a 4 core system with hyperthreading enabled shows up as 8 logical processors. A dual socket system with 2 quad core processors without hyperthreading enabled will also show up as 8 logical processors. The two quad core processors without hyperthreading have twice the execution capacity as the single quad with hyperthreading.

When Windows computes CPU usage it only measures the amount of CPU time spent in the System Idle Process as a fraction of the total. Since CPUs are discrete devices they are either on and executing or off and not-executing. This means that one or more logical processors will be executing idle loops at the same time. If a processor is executing a single sequential thread and the system idle process at the same time it will appear to be idle 50% of the time when almost all of its resources may be used by the sequential thread.

Actual CPU usage is extremely hard to measure.

The way VMWare Workstation works is it creates a process domain for each VM and a hardware process for each virtual processor. The time spent inside each virtual processor thread is spent just like time in any other application. This means that according to the Windows way of measuring CPU usage it can appear to be using only 1/8th of the CPU time for a single processor assignment and 25% of the CPU time for a dual processor assignment. In reality the single processor can use a full core's worth of execution resources but since Windows views the other thread on the same processor as being idle it thinks that it's only using half. That other thread may be idle but the execution resources that it would normally be using are in use by the other thread.

As far as overcommiting goes. You can overcommit processors as much as you like. Each processor is a hardware process and the CPU cycles between them just like any other process.
 


Thanks for the information. I feel a little better about being able to run 18 VMs simultaneously without each one grinding to a halt to the point I want to just shut it all down.

How do you determine the execution capacity of a processor when looking at the specs? Are you just going by cores? You also mentioned that a hyperthreaded processor will show 10-15% gains across the board. Are you referring to execution time?

Just wondering. Thanks for clarifying.
 


Glad to help

You should be able to run 18VMs without issue. Keep in mind that you should avoid loading them all at once for obvious reasons.

As for execution capacity I'm talking about it relatively. Two quad core processors without hyperthreading compared to one identically clocked processor of the same generation with hyperthreading. It could even be the same processor with hyperthreading enabled/disabled.

With hyperthreading enabled certain parts of the processor architecture are duplicated, namely the state tracking hardware. The execution resources are not duplicated but are instead shared dynamically between the two threads rather than one. This has a few advantages.

First, independent execution resources can be used on separate threads. One thread can utilize integer arithmetic and address generation while another uses various SSE hardware. Under superoptimal conditions this can have performance gains of nearly 100%.

Second, if one thread stalls out, is idle, or blocks, the execution resources can be dynamically reassigned to the other thread entirely. This is where the 50% illusion comes from. One thread can be idle and the other in use. The core will appear to be half idle yet the resources are entirely in use.

Assigning two virtual processors to a VM can have mixed results. The virtual processors could end up being executed side-by-side on the same physical core at which point they will be sharing execution resources or the virtual processors could be executed on separate physical cores which may or may not share resources with other processes. This is determined by the load conditions at the time and will affect all processes. Keep in mind that processes will be bounced around by the scheduler in real time to find the most optimal setting for execution. Processes do not stay on the processor that they were first launched on.

As for hyperthreading performance gains, that's an observed metric from a large number of applications tested with HT on and off. Some applications have gains as high as 25%-40% while others can actually suffer a bit or show no impact at all. Aggregated improvement across all tested applications is about 10%-15%.
 



Robert,

I ran the Windows Experience Index on a Windows 8 Release Preview VM four times: 1 vCPU 1 core and 2 core with hyperthreading on, and then again with hyperthreading on the host turned off in the BIOS. The WEI numbers are shockingly similar between the four runs. I don't understand the results.

Tom

1 vCPU, 1 core, 3 GB of RAM:

Processor: 7.1
Memory: 5.9
Graphics: 3.2
Gaming Graphics: 4.0
Primary Hard Disk: 6.7


1 vCPUs, 2 cores, 3 GB of RAM:

Processor: 7.1
Memory: 5.9
Graphics: 3.2
Gaming Graphics: 4.1
Primary Hard Disk: 6.8


1 vCPU, 1 core, 3 GB of RAM, hyperthreading disabled on host:

Processor: 7.1
Memory: 5.9
Graphics: 3.2
Gaming Graphics: 4.0
Primary Hard Disk: 6.8


1 vCPU, 2 cores, 3 GB of RAM, hyperthreading disabled on host:

Processor: 7.2
Memory: 5.9
Graphics: 3.2
Gaming Graphics: 4.0
Primary Hard Disk: 6.8


 



Tom please see my above two posts for an explanation as to why you're seeing similar performance results but different CPU usage. The CPU usage is an illusion because of the way it's measured.
 


Shotty,

I don't think the CPU landscape has changed too much. 3770, 3770K, 3820, 3930 are good options depending on cost.

One thing worth mentioning is that I thought it was really important to get the 3770 instead of the 3770K, and now I don't think this is the case. The 3770 supports VT-d, while the 3770 does not -- this is a technology that allows for direct device virtualization. But the motherboard has to support it, and the chances of finding a desktop motherboard that supports it seem pretty low; I couldn't find any Z77 motherboards that do. If VT-d is important for you, I found a detailed thread on getting it to work on this site:
http://wiki.xensource.com/xenwiki/VTdHowTo

Also, I've turned off hyperthreading on my system in the BIOS and am still quite happy with the performance. I think you'd probably be okay with a 3570, and that saves about $100, but as they say, ymmv.

Hope it works out well!
Tom

 


VT-d is a memory controller technology. It allows for DMA memory requests that bypass the IA cores to be remapped if the device is handled by a virtual machine. This prevents guest operating systems from accessing host memory through DMA. Without VT-d any device that has DMA access cannot be safely controlled directly by a guest OS. This used to be a function of the northbridge which would have made VT-d chipset dependent but when the memory controller was moved onto the CPU it became a CPU dependent technology instead.

The 3770 (non-k), 3820, 3930k, and 3960x all support VT-d independent of chipset or motherboard. The Sandybridge-E processors only support it in the C2 stepping due to a bug in the C1 stepping and as a result it must be enabled in the system setup on all X79 motherboards.
 
In regards to VT-d use: I have an i7-3930K, which supports VT-d, and I am using the Asus P9X79 Deluxe motherboard, which has had the ability to detect and allow the VT-d feature to be used with C2 stepping Sandy Bridge-E chips since the 9.XX firmware update.

If you plan on using the computer as a workstation... that is, if you plan on installing an operating system on it and then creating virtual machines using something like VMWare Workstation or VirtualBox... then you won't have any use for the VT-d instructions. VMWare only supports VT-d in ESXi, so VT-d is only useful on a headless server. I'm not sure which of Xen's offerings support VT-d, but I don't think Xen has a workstation-style hypervisor.

I thought I wanted VT-d, chose a CPU based on that need, and then found out later that I have no immediate use for it. One day, when this computer gets retired to my stack of secondary computers, I'll definitely install ESXi on it and make use of the Direct-I/O features, but right now I'm having too much fun having a ridiculously powerful desktop system that can act like 3 or 4 powerful desktop systems.
 
Thanks all for the recommendation. Guess i will stick to the non "K" CPU. Looks like ASUS is the common board here. Let me do some more research and put up my list.

There are 16GB DDRs available, bus seem like no MB are supporting them yet.
 


16GB DDRs are most likely dual rank and/or RDIMM. They may not be supported if they do not conform to JEDEC completely
 
Forgive me if I am mis-utilzing this form of communication - Just getting acquainted with how things work.

In a nutshell- I am now trying to do what TomBegins2012 was doing a year ago.

I understand about 25% of the detailed points, but do understand that the i7-3770 will work fine.

Question: What specs do I need to look for on a motherboard, and IF I want to use this machine to play Sim City (my guilty pleasure)... should I use the same server OS that Tom used, or should I install a version of Windows 7 Pro?

Thanks much!
 


This thread is almost a year old!

You're probably best off starting a new thread so that myself or someone else can answer your specific questions.
 


After about a year of working with this PC, and having made some upgrades, I'll share my thoughts, and how I might change the configuration if I were building it now and cost were not an issue.

The system is as good a PC as I could ask for. It is fast and reliable. I'm glad I purchased quality parts, including the i7-3770 and the ASUS motherboard.

I did not like the case at first but it grew on me; you could do better, but the price is fantastic, and it is good quality and extremely well ventilated.

I switched to a wired keyboard since the wireless goes through batteries pretty fast.

The most important upgrade I made to the system was a 480 GB Crucial m500 SSD.

When I was running VMs on a hard drive, things worked but were painful. With the SSD, there's no noticable I/O contention and things fly. I can run numerous VMs and they never stumble because one is doing something with disk. And with thin provisioning -- which is fine for a training lab -- you can fit a lot of VMs on a 480 GB SSD.

I've worked with a few SSDs now. Given current pricing and performance factors, if I were building this system right now (the SSD market changes rapidly), I would try to get two Samsung 840 SSDs: A 120 GB for the OS, and a 500 GB for VMs. And a 2 or 3 TB hard disk for data storage.

In the consumer SSD space, the Samsung 840 and the Crucial m500 are hard to beat at the moment. Good performance, 3 year warranty. The m500 has some more whiz-bang and more durable flash, but the complete lack of software tips my preference to the Samsung. That said, I own an m500 and it's great.

In terms of memory, I have never approached needing the full 32 GB, but I have exceeded 16 GB. Memory is substantially more expensive now than a year ago. You could start with 16 GB and add more if needed.

I got tired of running a server OS on a desktop because of all the drivers and software that don't want to install on a server OS. Currently, I suggest Windows 8 Professional. You could run Windows 8.1 Preview for free for the next six months or so, then buy your OS when it RTMs.

If you don't like the Windows 8 interface, you can still get it and spend $5 on StarDock's Start8 Start Menu replacement. Properly configured, you'll hardly know you're not using Windows 7, and Windows 8 has many improvements under the hood that make it worth it.

If your budget isn't relatively unlimited and you want to work with virtualization and save some money, you could start with Client Hyper-V, which is built into Windows 8 Professional. VMware Workstation is a more powerful tool, but Client Hyper-V is a fine starting point.

The next generation Intel CPUs recently came out. On the desktop level, it seems there's about a 10% performance gain, which isn't too much to get excited about. You could buy a 3rd generation CPU for some savings, or 4th gen for state of the art.

For gaming, I don't know. SimCity isn't an action game (or at least wasn't), so the on-board graphics might be enough, but I can't address that question.

I'll paste the config as I might spec it today, if I had the money and was going with 3rd generation CPU. Depending on the motherboard, a Haswell system would likely run $50-100 more; I'd get that if money were no obstacle.

One caveat to all this: You indicated that your interest is in learning about virtualization. I built my setup to be a good virtualization host for training purposes for Microsoft network training. If I wanted to become a virtualization expert per se, I would build two smaller systems and install VMware ESXi on them. That's a different ball game.

You also indicate you don't have a professional IT background and that your understanding of this thread is somewhat incomplete. Without knowing you personally it is difficult to give appropriate advice, but just to ask the question, is spending a large sum on a very powerful computer the next best step? Maybe, but seems a question worth asking.

Apologies for going on so long.

Best wishes for your training endeavors!

Tom

NewEgg pricing on July 5, 2013:

CPU: Intel Core i7-3770 3.4GHz Quad-Core Processor $289.99
Motherboard: Asus P8Z77-V ATX LGA1155 Motherboard $124.99
Memory: G.Skill Ripjaws X Series 32GB (4 x 8GB) DDR3-1600 Memory $264.99
Hard Drive: Samsung 840 SSD 120 GB for OS $109.99
Hard Drive: Samsung 840 SSD 500 GB for virtual machines $369.99
Hard Drive: Seagate Barracuda 7200.14 ST3000DM001 3TB 7200 RPM $134.99
Case: Rosewill Challenger U3 $ 59.99
Power Supp: SeaSonic 520W ATX12V / EPS12V Power Supply $ 79.99
Optical: Asus DRW-24B1ST/BLK/B/AS DVD/CD Writer $ 19.99
Monitor: Acer S220HQLAbd 21.5" Monitor $129.99
Keyboard: Logitech MK200 Wired Keyboard & Mouse $ 21.99
Speakers: Logitech S-120 Speakers $ 14.99
OS: Windows 8 Professional 64-bit OEM $139.99

Total: $1761.87