体现速度与性能——商用服务器SMP技术

整机外设

  SMP(Symmetrical Multi Processing)“对称多处理”技术是专门用于服务器和高档工作站的专业技术,在高性能商用服务器和工作站的主板架构中相当常见。现在我们就一起来了解一下SMP技术在最新的商用服务器/工作站中的应用。

  SMP技术的设计原理

  对于商用服务器而言,性能是第一位,其次就是功耗和散热问题,如果单一CPU的性能有限而功耗和散热都已经成为物理上不可克服的难点,那么单一CPU的方案是不可能实现性能无限提升的。人们之所以使用多个处理器,最根本的原因是,它们能够比单个处理器提供更强的处理能力。在选择单处理器体系结构还是多处理器体系结构时,需要考虑的一些性能因素有:实时算法的处理量,处理外部事件所需的响应时间、所需的数学密集处理量以及所需的并行运作的能力。

  使用多个处理器时任务分割允许把高速的突发性线程的处理权分配给某个处理器来完成,并在它不工作期间禁用该处理器或转作其他的线程处理,而另一个处理器则处理连续性操作,这样就进一步的提高了系统的性能。系统可以动态地将处理负载分配到一个紧密耦合的“共享一切”的多个处理器网络中(图1)。在这样的系统中,操作系统一般都了解每个处理器并管理任务的分配。这些系统保持着与高速缓存一致的子系统,并能够在处理器之间移植包括操作系统内核在内的各种进程,以平衡负载。比如,有时工作中的服务器会同时面对数千个数据库调用的请求线程,单个处理器非常可能出现过载的现象。而增加处理器数量并采用SMP技术就可以非常有效地减少请求等待的情况。SMP技术可以通过多线程并行来提高性能,通过采用并行多线程技术,服务器可以通过SMP技术同时处理多个应用请求,使得这些程序获得更好的运行效果。

  SMP对于商务服务器/工作站的价值

  从负载均衡的角度考虑,只有多处理器系统才会将负载及时消化掉。如前所述,在实际的网络服务器应用中,CPU过载的情况时常出现,对于大流量的基于Web的数据库应用网站来说尤其如此。使用单一处理器服务器时所有线程就像是一条单行道一样,一次只能过一辆车,当车流量过多时道路就会堵塞。单处理器,服务器可能就会出现系统不响应的现象。而多处理器系统就像多车道一般,只要有一颗处理器是处于空闲状态,马上就会被操作系统分配给任务从而实现系统的负载均衡。多处理器体系结构的实现可提供某种平衡负载的能力,并提供了使用定制的处理器来完成各项系统任务的机会。

  对于商用服务器而言,拥有系统的冗余性是非常重要的。因为服务器是不允许停机的。但是由于某颗处理器的问题而导致系统崩溃的情况是无法避免的,此时就需要多处理器系统为服务器提供容错能力。在其中一颗CPU出错的情况下,另外的CPU可以接替它的工作,使得服务器能够继续运行。当然此时系统的性能会有所下降,现在也有一些相当高端的服务器产品支持热插拔CPU技术。

  SMP技术在商务服务器上的应用

  我们以双路Xeon的x86构架的SMP系统为例。这样的系统基本上使用如图2所示的服务器主板。因此最关键的一点就是需要合适的处理器相配合。

  比如我们要建立Dual Xeon系统,开始只配置一颗Xeon 2.4GHz处理器,再次添加另一颗处理器时也必须用一颗同频的处理器来进行,而不能用Xeon2.6GHz或是其他频率的Xeon来组建,否则机器不能工作。再比如说533MHz前端总线的Xeon和400MHz前端总线的Xeon也不可能建立SMP系统。甚至对于处理器的编号也要一致。不一样编号的处理器代表不同批次的产品,即使是同样核心的相同频率处理器,由于生产批次不同也会产生莫名其妙的问题。两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担较低的情况,无法发挥最大性能,更糟糕的是还可能导致死机。因此,应该尽可能选择同一批生产的处理器来组建SMP系统。除了Intel的处理器外,在SUN的UltraSPARC、SPARCserver处理器和HP的Alpha处理器以及IBM的PowerPC处理器等架构上都有SMP的身影。