至强处理器和大型交易

一点背景:

我们有一个windows服务,它从外部服务器获取数据并将它们存储在本地数据库(SQL Server 2012)上。

外部服务器每秒发送超过1500条“消息”,但本地服务器的存储速率几乎为500 msg / s(Windows服务和数据库位于单个虚拟机上,Xeon E5520和16 GB的RAM位于HP G7上服务器/ Windows服务器2012)。

当我将服务和数据库移动到本地PC时,存储速率上升到1100 msg / s。

我在多台PC(core2 duo和core i5)和服务器(HP G7和G8,VM和物理服务器)上进行了testing,结果是一样的:所有的PC以比我们的服务器更好的速度获得消息。

我们认为这可能是一个networking问题,但事实并非如此。

我在服务器和PC上用“Sisoft Sandra”进行了“内存交易吞吐量”testing,发现我们的PC比服务器做得好得多。 最低 PC结果为5.4MTPS(在Core2 Duo E7400上), 最高服务器结果为3MTPS(在带有至强E5-2650的HP Proliant DL380P上)。

我倾向于得出结论,至强处理器存在问题,但是这将是一个奇怪的结论,因为全球有数十个至强数据库服务器。

我错过了什么吗? 有没有在BIOS的特殊configuration来解决这个问题?

由于这是一个消息传递应用程序,而且您正在使用HP ProLiant服务器,所以我将其视为低延迟configuration…如果这是一个容易重现的testing,您可以尝试以下方法吗?

  • 更新您的服务器固件。 确保系统BIOS和NIC位于当前固件上。 如果使用HP Service Pack for ProLiant启动DVD ,则它将处理所有相关的组件。
  • 将您的ProLiant服务器设置为“最高性能”电源configuration文件。 这将禁用处理器C状态,可能对您正在做的事情有帮助。
  • 如果物理上更有意义,则优先使用裸机解决scheme。 虚拟化networking总是会带来一些开销。

看看我们用于消息传递重大应用程序的一些调优build议 。