在英特尔selectAMD处理器时的注意事项

我为一家拥有大量传统LAMPnetworking应用程序的公司工作,在那里我们试图将我们的硬件从大约250台物理服务器刷新到大约40台带虚拟化的新服务器。 我们收到了两家厂商的报价,一家是AMD处理器,一家是AMD处理器。

有一件事我喜欢与AMD的核心关系,那就是我们将能够为虚拟机专门提供内核,这意味着我们的应用程序由于尖峰而相互干扰的可能性较低,这在一定程度上更多对我来说比最高性能重要。

我想到的其他考虑因素是:

  • 功耗可能不同(在我们的情况下不是问题)。
  • 像CRC32 (SSE 4.2)的CPU指令将不被支持(编辑:MySQL 5.6似乎支持SSE4.2。不确定Apache)
  • 在16/32内核之后,MySQL不能很好地扩展(我愿意接受这种折衷)。

我还缺less什么其他的考虑?

(请注意版主:我知道这个主题 – 我认为这个问题略有不同。)


编辑:假设任务是exception并行(Web服务器),并且我不关心数据库服务器不是如此平行。

有关最新的AMD处理器产品的新闻报道很多,称为推土机。 这个部分的“服务器”版本还没有出来,但桌面产品是对新东西的一些潜在问题的一个很好的看法。

至于目前这一代服务器部分,总的来说推荐是相当不错的。 Web服务和(大部分)数据库工作大部分是基于Integer的,而AMD CPU在Integer计算方面performance良好。 另外,networking服务(一般)是一个高度并行的问题。 AMD正在专注于“许多核心加快工作速度”,而LAMP(一般来说)往往会对此作出很好的回应。

你真正需要关注的一个领域是应用程序中的单线程依赖关系。 AMD部件不像英特尔部件那样按照时钟顺序进行扩展,因此基本上是单线程的进程可能会比在更快的CPU部件上更快地使整个系统受到瓶颈。 只有你知道这是否适用于你。 某些数据库操作可能会更好地服务于更小的核心数量的更快的英特尔处理器,以便这些几个胖线程可以真正尖叫。

应用程序代码也很重要。 一些长时间运行的Web服务器进程可能会咀嚼大量的单线程时间,并且也会喜欢更快的时钟。 这可以通过重写长时间运行过程的需要来解决,但在此之前,更快的时钟将会很好。

但总的来说,对于大量Web服务器-VM风格的工作负载,这些12核心部分可以扩展得相当不错。 如果你遇到了一些单线程问题,那么使用更高时钟的8核心器件将是一个可以接受的折中scheme。

大多数情况下,你会发现两个处理器是非常可比的。 由于第四通道,AMD处理器在RAM速度上(通常)有轻微的优势。 英特尔处理器通常具有较低的CPI ( HT可能更高,但非常依赖于工作负载)。 AMD一般都比较便宜。

这些因素中的大多数都会根据您的工作量给予一个或另一个优势。 (假设理智的configuration和大致相等的资本支出)也不会太差。

您应该考虑不同内存架构可能带来的性能差异,以及这是否是您组织的决定性因素。

还有一点值得注意的是,虽然你可能不关心最高性能,但如果你的虚拟机没有多个内核和/或其中的特定任务是单线程的,那么在内存中就有相当大的性能优势比AMD核心,即使总的核心数量less。

主要区别在于方法; 在中端市场,AMD对于核心的重视程度与英特尔相同。 英特尔部分将有更less的内核主频更高。

因此,对于虚拟化的Web应用程序工作负载,您可能希望支持AMD系统。

除非有很大的差价,否则我不会担心美元。 我会更多的看IO子系统。 而且,40台服务器上的TCO将主要是支持,软件许可(如果有的话)和人员,可能不是服务器本身。

至less,你需要帮个忙,引入两个供应商,然后在他们的硬件上运行你的系统,然后再从任一个服务器提交到40个服务器。 只有您可以针对您的特定工作负荷正确回答问题。

还有一件事要注意,要小心,如果你使用任何types的虚拟化,从英特尔到AMD的客户迁移可能是一个真正的问题,集群跨品牌是根本没有。 坚持每个集群的一个平台,并接受从一个跳到另一个是很难的。