Considerations when chosing AMD processors over Intel

I work for a company with a lot of legacy LAMP web-applications, where we are trying to refresh our hardware from ~250 physical servers to ~40 new servers w/virtualization. We have received two quotes from vendors - one is suggesting Intel processors, the other AMD.

One thing I like about the high core-counts with AMD, is that we will be able to dedicate cores to VMs, which means we have a lower chance of applications interfering with each-other due to spikes, which to a certain extent is more important to me than peak performance.

The other considerations I have in mind are:

  • Power consumption may be different (not an issue in our case.)
  • CPU instructions like CRC32 (SSE 4.2) will not be supported (Edit: MySQL 5.6 appears to support SSE4.2. Not sure about Apache)
  • MySQL doesn't scale perfectly after ~16/~32 cores (I'm willing to accept this trade off.)

What other considerations am I missing?

(Note to moderators: I am aware of this thread - I consider the question slightly different.)


Edit: Assume that the tasks are exceptionally parallel (webservers), and that I do not care about the database servers not being so parallel.


Solution 1:

There has been a good amount of press regarding the latest AMD processor offering, called Bulldozer. The "Server" version of this part isn't out yet, but the desktop offering is a great view into some of the potential problems of the new stuff.

As for the current generation of Server part, all in all the recommendation is fairly good at a generic level. Web-serving and (most) database work is largely Integer based, and the AMD CPUs do well with Integer computation. Additionally, web-serving is (generically) a problem that can be highly parallelized. AMD is focusing rather specifically on "many cores make for faster work", and LAMP (again, generically) tends to respond well to that.

One area you really do need to pay attention to are single-thread dependencies in your applications. The AMD parts don't scale as far clock-wise as Intel parts, so processes which are fundamentally single-thread can bottleneck your overall system a lot quicker than it would on faster CPU parts. Only you know if this applies to you or not. Certain database operations may be better served from faster Intel processors with smaller core-counts just so those few fat threads can really scream.

Application code matters here too. Some long-running web-server processes could chew up a lot of single-thread time and would also like a faster clock. That may be solvable through rewriting out the need for that long running process, but until then a faster clock would be nice.

But in general, for lots-o-webserver-vm style workloads, those 12-core parts can scale pretty darned far. If you do run into some single-thread problems, going with the higher clocked 8-core parts would be an acceptable compromise.

Solution 2:

For the most part, you'll find both processors are very comparable. AMD processors have a slight edge in RAM speeds (usually) because of the 4th channel. Intel processors generally have lower CPI (possibly more so with HT, though it very much depends on workload). AMD are generally cheaper.

Most of these factors will give an edge to one or the other, depending on your workload. Neither is going to be significantly worse than the other (assuming sane configurations and roughly equal CapEx).

Solution 3:

You should consider the performance differences that the differing RAM architecture may bring, and whether or not that is a deciding factor for your organization.

Also as a bit of a side note, while you may not be concerned with the peak performance, if your VM's will not have multiple cores each and/or specific tasks within are single-threaded, there is a considerable performance advantage in the intels per core than AMD, even if the total core count is less.

Solution 4:

The main difference is in approach; in the mid-range, AMD has a slight emphasis on cores in a part that costs about as much as a like Intel part. The Intel part will have less cores clocked higher.

So, for virtualized web app workloads, you'll likely want to favor AMD systems.

Unless there's a big price difference, I wouldn't worry about dollars. I'd look more to the IO subsystem. And, the TCO on 40 servers will be mostly support, software licensing, if any, and staffing, probably not the servers themselves.

At a minimum, you need to do yourself a favor, bring in both vendors, and run your systems on their hardware before committing to 40 servers from either one. Only you can answer the question properly for your particular workload.

Solution 5:

One more thing to throw out there, beware if you use virtualization of any type that migrating the guests from Intel to AMD can be a real issue and clustering across the brands isn't in the cards at all. Stick to one platform for each cluster and accept that it is hard to jump from one to another.