在Intel上选择AMD处理器时的注意事项


13

我在一家拥有大量旧版LAMP Web应用程序的公司工作,在该公司中,我们尝试将硬件从约250台物理服务器更新为约40台带有虚拟化的新服务器。我们已经从供应商那里收到了两份报价单-一种是建议采用Intel处理器,另一种是建议采用AMD。

我喜欢AMD拥有大量核心的一件事是,我们将能够将核心专用于VM,这意味着由于峰值(峰值在一定程度上更多),应用程序相互干扰的可能性较小。对我而言,比达到最佳性能更重要。

我想到的其他注意事项是:

  • 功耗可能有所不同(在我们的情况下不是问题)。
  • 不支持CPU指令,例如CRC32(SSE 4.2)(编辑:MySQL 5.6似乎支持SSE4.2。不确定Apache)
  • 在〜16 /〜32个内核之后,MySQL无法完美扩展(我愿意接受这种折衷。)

我还缺少其他哪些注意事项?

(主持人注意:我知道这个线程 -我认为这个问题略有不同。)


编辑:假设任务是异常并行的(网络服务器),并且我不在乎数据库服务器不是那么并行。



如果您的应用程序可以将读取/写入查询拆分到不同的服务器池,则可以通过运行从属读取的第二个实例来规避某些MySQL性能问题。我对您的体系结构或工作量了解不足,无法知道这是否是一个可行的主意,或者这是否只会增加大量不必要的开销和复杂性,但这是您可以考虑的一种选择。
jgoldschrafe 2011年

我熟悉读/写拆分的工作方式。在这种情况下,它不适合提高性能。
Morgan Tocker 2011年

Answers:


10

关于最新的AMD处理器产品Bulldozer的报道很多。这部分的“服务器”版本尚未发布,但是台式机产品可以很好地了解新产品的一些潜在问题。

对于当前的服务器部分,总的来说,在通用级别上,建议还是不错的。Web服务和(大多数)数据库工作很大程度上基于Integer,而AMD CPU在Integer计算方面表现出色。此外,Web服务(通常)是一个高度并行的问题。AMD特别专注于“许多内核使工作更快”,而LAMP(同样,通常)往往对此反应良好。

您确实需要注意的一个领域是应用程序中的单线程依赖性。AMD部件在时钟方向上的扩展程度不及Intel部件,因此从根本上讲,单线程处理可能比快速CPU部件更快地成为整个系统的瓶颈。只有您知道这是否适用于您。更快的Intel处理器和更少的内核数可能会更好地满足某些数据库操作的需求,从而使那些很少的胖线程真正尖叫起来。

应用程序代码在这里也很重要。一些长时间运行的Web服务器进程可能会消耗很多单线程时间,并且还希望时钟更快。通过改写对长时间运行的过程的需求,可以解决该问题,但是在那之前,更快的时钟会更好。

但是总的来说,对于很多o-web-server-vm风格的工作负载,那些12核心部分可以扩展得很深。如果您确实遇到了一些单线程问题,则采用时钟较高的8核部件将是可以接受的折衷方案。


谢谢,不幸的是,AMD系统不会推土机。它是AMD Opteron 6140(或类似产品)。
Morgan Tocker 2011年

@MorganTocker碰巧,我熟悉该类的CPU,这就是我写这篇文章的目的。推土机有一些我没有提到的特定问题。
sysadmin1138

4

在大多数情况下,您会发现两种处理器都具有可比性。由于第4通道,AMD处理器的RAM速度(通常)略有下降。英特尔处理器通常具有较低的CPI(对于HTCPI可能更高,尽管很大程度上取决于工作量)。AMD通常更便宜。

这些因素中的大多数会给您带来优势,具体取决于您的工作量。两种方法都不会比另一种方法差很多(假设配置合理且资本支出大致相等)。


2

您应考虑不同的RAM体系结构可能带来的性能差异,以及这是否是组织的决定因素。

另外,尽管您可能并不担心峰值性能,但是如果您的VM不会每个都具有多个核心和/或其中的特定任务是单线程的,则每核心总数比AMD少,即使总核心数更少。


假设我们的应用程序是适当的多线程(Web服务器;愿意接受MySQL并不完全是)。
Morgan Tocker 2011年

2

主要区别在于方法;在中端产品中,AMD稍微偏重于内核,而其价格大约与英特尔类似。英特尔部分将拥有更少的更高时钟核心。

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

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

至少,您需要帮自己一个忙,引入两个供应商,并在它们的硬件上运行系统,然后再从其中任何一个服务器提交到40台服务器。只有您可以针对您的特定工作量正确回答问题。


谢谢您的回答!我们没有一个工作负载-我们有几个工作负载。因此,要引入供应商,我们需要完全迁移,然后再次迁移以同时尝试两者。我意识到这是最佳选择,在我们的案例中这是不实际的。我们可以选择较少数量的角色进行移动和投影,但是要做到这一点,我们需要知道我们应该衡量/寻找什么。因此是我的问题;)
Morgan Tocker 2011年

就工作负载而言,我的意思是您有一个总体工作负载,该工作负载由(大概)许多不同的服务器组成,这些服务器从事不同的工作。如今,您应该能够轻松地将关键服务器的子集转换为虚拟映像(使用可以帮助您完成此任务的软件),并将其加载到您要购买的服务器上。这不是一项微不足道的任务,而是确保不仅CPU,而且IO子系统和其他所有组件都能正常工作的唯一方法。否则,每个人都会放弃和猜测。:)
alphadogg 2011年

1

还有一点需要注意的是,请注意,如果您使用任何类型的虚拟化技术将来宾从英特尔迁移到AMD可能是一个现实问题,而跨品牌的集群根本不存在。对于每个群集都坚持使用一个平台,并接受从一个平台跳到另一个平台的困难。


在很大程度上与KVM出现架构之间的实时迁移是在64位非的问题:linux-kvm.org/page/...
奥迪安

用户说“旧版LAMP”;闻起来好像有32位来宾在我这里。不过,很高兴知道KVM能够解决问题!感谢您的来信。
标记

是的,有些来宾是32位的,但我们计划将其全部迁移到64位。
Morgan Tocker 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.