性能 – Windows Server 2008 R2与Windows Server 2012

我们有两个不同的服务器运行相同的服务器应用程序。 他们必须在自定义协议中处理大量的连接(2000+),我们的用户有我们的程序连接到我们的服务器。

机器1现在正在处理3300连接,它有一个英特尔I7 377016GB RAM和Windows 2008 R2

机器2现在正在处理2400连接,它有一个与Windows 2012 32克 RAM的英特尔i7 4770

这两台机器使用大约6-9%的CPU,不到1%的networking, 0%的 HD,类似的ping(66ms和73ms)从我们的办公室和相同的网卡。

机器2function更强大 ,必须处理更less的连接 ,但比机器1 得多!

我无法用数字来衡量速度有多慢,但是我们的服务需要一个快速响应才能正常工作,机器2要慢得多。

可能问题出在我们的.exe(即使两台机器相同),但我们正在考虑的问题可能是Windows 2012。

有人有什么想法可以产生这种差异?

编辑:感谢您的回答和对此的兴趣! 我正在添加您请求的信息:

  • 我们的程序在两个或多个用户之间创build一个单向压缩的数据stream,因此它们必须在同一台机器上连接。
  • 我们在“性能监视器”中查了一下性能,并且找不到任何瓶颈,所有这一切总是低于10%的使用率(CPU,内存,高清,networking)
  • 我们没有networking瓶颈,我们的服务器有1gpbs访问互联网,我们通常只使用2或3 mbps。 我知道1gpbs是网卡的速度,也是我们服务器的上网速度。
  • 量化性能差异并不容易,但是在机器1上我们的用户可以在不到100ms的时间内login,在机器2上同样的login使用大约2秒钟。 login不是唯一放慢的速度,整个连接会话会变慢

谢谢@theunpaidBill,我们将尝试做一个更好的数据包捕捉,以了解发生了什么!

另一个编辑:我知道这已经closures,但我添加了这最后一块信息! 我们将Windows 2012服务器降级到Windows 2008 R2,我们的服务器性能得到提升。 我仍然不知道为什么,但那是什么发生。

第一步是隔离你的瓶颈在哪里; networking,磁盘,CPU。

我的第一个嫌疑人将是networking。 validation您的服务器是否以适当的速度连接到networking。

如果是这样,我会在服务器上放一个协议分析器并运行一个数据包捕获。 根据我的经验,自定义协议通常是心痛的秘诀。

数据包捕获将告诉您networking通信是否由于重传,无关的握手等原因而导致延迟

如果不是networking,我会与开发人员在debugging模式下运行它。

隔离这样的性能问题是非常具有挑战性的,祝你好运。