ccidnet????

出版日期:2002-10-14 总期号:488-489 本年期号:38-39

本期导读
热点聚焦
零组件
PC天地
数码与外设
软件.net
专题
社会培训
教育信息化
读者俱乐部
采用SMP物有所值吗

《中国电脑教育报》吕森林

  什么时候会出现1+1≠2?看了这个题目,您可能非常奇怪:什么情况下才会出现1+1不等于2,是不是“脑筋急转弯”呀?在服务器采用的SMP(Symmetric Multiprocessing,对称多处理)技术中,就存在1+1不等于2的现象,这究竟是怎么回事,看完这篇文章您就明白了。


  为什么会出现1+1≠2


  有的读者会问,假设一台服务器支持SMP,但是现在只安有一颗CPU,如果再加上一颗CPU,那么此时的服务器性能会如何提高呢?实际上服务器性能的提升决不是提高了一倍,而是不到一倍。

  假设有一款可支持SMP的具有8路Intel Xeon CPU的高端服务器,假定系统的内存足够大,网络速度足够快,硬盘速度足够快,也就是增加CPU时系统不存在瓶颈。当Xeon CPU从1颗扩展到两颗时,系统性能提升了70%;当Xeon CPU从1颗扩展到4颗时,系统性能提升了200%;当Xeon CPU从1颗扩展到8颗时,系统性能提升了400%。

  上面的数值仅仅是对Intel CPU的某个型号而言的,而且这里只考虑了服务器的CPU,没有考虑内存、硬盘、网卡等其他综合因素,对于Intel的其他类型的CPU和非Intel CPU而言,参数就不同了。

  由上面的数字可见,随着CPU数量的增加,为什么每颗CPU为系统性能提高所起的作用反而减少了,其原因何在呢?原来,SMP系统中最关键的技术问题是如何更好地解决多处理器间的协调和通信,如果协调和通信不尽如人意,当然系统性能就不会呈整数倍地增长了。


  为什么要采用SMP


  既然SMP技术对系统性能的提高不是成倍的关系,那么为什么还要使用SMP技术呢?SMP具有的特点使它具有以下作用:

  1、提升服务器的性能

  有时候,网络中的服务器会同时面对多个应用请求,很可能会出现过载的现象,但是由于各种原因(比如:没有足够的资金购置更多的服务器、没有足够的空间放置更多的服务器、没有多余的网络接口等)导致无法增加新的服务器时,那么增加处理器数量并采用SMP技术就是一个行之有效的好方法了,此时也就需要SMP了,SMP技术可以通过多线程并行来提高性能。通过采用并行多线程技术,服务器可以通过SMP技术同时处理多个应用请求,使得这些程序获得了更好的运行效果,而且在台式机的专业应用软件中,并行多线程技术的采用也日益增多。

  在中高端服务器中,多处理器的应用使它们得到了性能上的提高。通过多个处理器,服务器可以以多线程方式同时处理许多个线程请求。这些线程可以来自相同也可以来自不同的应用程序,可以是操作系统的服务功能,也可以是系统的后台维护操作。

  2、实现负载均衡

  如前所说,在实际的服务器应用中,经常会出现CPU过载的情况,对大流量的校园网网站来说尤其如此。此时单CPU服务器可能就会出现系统不响应的现象,但是如果采用了SMP技术,另一块空闲的CPU就会处理多余的事务,从而实现了系统的负载均衡。

  3、处理器容错的需要

  对于关键任务来说,服务器是不允许停机的。但是由于某颗CPU的问题而导致系统崩溃的可能性是无法避免的,此时就需要多处理器系统为服务器提供容错能力。在其中一颗CPU出错的情况下,另外的CPU可以接替它的工作,使得服务器能够继续运行,当然此时系统的性能会有所下降。

  综上所述,虽然SMP没有使系统性能得到成倍的增长,但它的确用最小的代价解决了我们应用中的实际问题,因此我们说采用SMP是物有所值的。