服务器 频道

巧改BIOS设置 让文件服务器性能提升10%

  在2008年度的服务器横评中,我们一共征集到了来自国内外7家厂商的10款服务器参与测试。在测试过程中我们不止一次发现,用来作为基准对比服务器的DELL PE2900III性能非常出色(参见:极致性能 华硕RS162-E4服务器性能评测  性能特别出色 曙光I650-F服务器评测)。虽然这款服务器并不是最新最高端的配置,但是实际的对比测试结果表明——在多项测试项目中,基准服务器的性能都处于领先地位,特别是在文件服务器测试中的优势更为明显。

  当时,我们估计差别出在基准服务器所使用的Intel 5000X芯片组身上,或许是由于5000X芯片组自带的Snoop Filter功能给性能带来了巨大的提升。因此,在横评测试环节结束之后,我们就开始着手对于这台基准服务器——DELL PE2900III进行全方位的测试,并将重点集中到了Snoop Filter功能身上。

 
DELL PE2900III服务器BIOS实拍图

  Snoop Filter(探听过滤器)这一技术早期出现在IBM自己开发的X3芯片组中,随后英特尔Blackford芯片组中也引入了该功能。Snoop Filter的设计初衷是对于基于FSB前端总线架构的系统频繁的Snoop操作进行缓存、性能优化,缓解前端总线的通信压力,从而改善系统性能。 
 
  基于冯·诺依曼架构,多核心乃至多处理器的协同工作,保持缓存一致性(Cache Coherent)是很自然也是很合理的要求(不保持缓存一致性的话需要在对软件做出很大的改动),在现存主流的两种x86多处理器架构中,具有两种缓存一致性方案:AMD Operton和Nehalem代表的ccNUMA架构使用的Directory Cache Coherent,以及Nehalem-EP之前的Xeon代表的统一总线架构采用的Snoop操作。

  在统一总线架构中,一个处理器的所有操作都可以被其他处理器看到,因此处理器可以利用一种叫做Snoop(侦听)的操作来监视总线上的缓存操作指令,当侦听到其他处理器的操作涉及到本处理器上的共享缓存页面的时候,就可以进行相关的操作来保持缓存一致性(通常,就是使本地的缓存页面变为Invalid无效)。 


Snoop Filter(探听过滤器)运行示意图

  单条总线上的Snoop操作很好处理,每一个处理器/处理内核都自行Snoop,然而在多条FSB总线下,Snoop操作需要总线之间转发所有的消息,随着处理器的增多,总线的负荷就越来越大(这也是Hub让位于Switch的原因之一),因此就导致了Snoop Filter出现。

  从上图中我们可以看到,搭建在FSB之间的Coherency Engine(一致性处理引擎)管理着一个大的表格,记录着不同总线/不同处理器之间的缓存页面——事实上,Snoop缓存的是CPU二级缓存的标签和状态等信息,并对总线之间的转发进行控制,从而降低总线上的交通量,起到提升处理效率的目的。由于要协调多个处理器之间缓存的一致性,因此Snoop Filter缓存的容量要大于或等于所有处理器二级缓存容量之和才能发挥非常好的的作用。从而,Intel 5000X的Snoop Filter缓存容量为16MB(每个Intel 5400 Xeon的L2缓存容量8MB,两个处理器就是16MB),5400芯片组中Snoop Filter更是增加到了24MB。

  那么具体到我们使用的这台基准服务器——DELL PE2900III,Snoop Filter功能究竟有多大的作用呢?下面我们将分别尝试开启/关闭Snoop Filter功能,看看它对于我们的测试工作能够造成多大的影响。

 

 

0
相关文章