如何改进Windows Server 2008 R2来处理多个连接?

到目前为止,我已经过了几天的时间,试图找出如何解决这个问题。 首先,我正在运行一个网站,每天的平均浏览量为35万。 之前,所有的广告pipe理(每个广告已经投放的跟踪点击和展示)以及内容都是在一台服务器上投放的,并遵循以下规范:

 服务器1
操作系统:Windows 2008 R2 64位
 CPU:英特尔®酷睿™i5-4核
内存:8 GB
存储:2 x 1 TB硬盘
带宽:每月10 TB

为了提高我们的网站速度,我决定将广告pipe理脚本分成另一个专用服务器,因为我们有超过15个广告客户,每个网页有30个广告客户。

 服务器2
操作系统:Windows 2008 R2 64位
 CPU:英特尔®酷睿™i5-4核
内存:4 GB
存储:2 x 300 GB硬盘
带宽:每月10 TB

问题
问题是Server 1可以处理内容和广告系统。 现在,我拿走了广告系统,并把它放在Server 2Server 2几乎不能只提供广告系统。

testing

  • 首先,我把75%的广告移到了Server 2 。 然后,执行ping到服务器: ping -t xxxxx 。 [我做了10分钟的ping,下面有类似的模式]
来自xxxxx字节的答复= 32时间= 290ms TTL = 116
来自xxxxx字节的答复= 32时间= 289ms TTL = 116
从xxxxx字节= 32时间的应答= 320ms TTL = 116
来自xxxxx字节的答复= 32时间= 286ms TTL = 116
来自xxxxx字节的答复= 32时间= 286ms TTL = 116
来自xxxxx字节的答复= 32时间= 348ms TTL = 116
来自xxxxx字节的答复= 32时间= 284ms TTL = 116
  • 然后,我将100%的广告移到了Server 2 。 然后,再次执行ping到服务器。 [我做了10分钟的ping,下面有类似的模式]
来自xxxxx字节的答复= 32时间= 290ms TTL = 116
请求超时
从xxxxx字节= 32时间的应答= 320ms TTL = 116
来自xxxxx字节的答复= 32时间= 286ms TTL = 116
请求超时
请求超时
来自xxxxx字节的答复= 32时间= 284ms TTL = 116

尝试

  1. 增加MaxUserPortTcpNumConnection
  2. 重新启动服务器
  3. 增加IIS Max InstancesInstance MaxRequests

服务器资源

  • 只有10%-15%的networking连接被使用
  • 只有10%-15%的CPU被使用
  • 只有25%的内存被使用

那么,让我们开始吧。 这个更长。

你完全错误地判断了这里的事实。 Windows – 即使是过时的2008 R2,你应该尽快更新 – 是完全能够处理音量我的手机没有问题的处理。

所以,这留下了三个可能的问题领域:

  • 安装。 你的司机可能很糟糕。 鉴于你运行的是过时的操作系统 – 你的驱动程序有多好? 更新他们 – 这可能会导致各种问题。

  • networking。 当问题是你在交通堵塞中花费大部分时间并且抱怨交通没有移动时,这看起来像是“我的车太慢了,请帮助我快点”。 不是汽车调音问题。 10tb的stream量对networking拥塞毫无所知。 在你的网卡上观察你的networkingstream量统计数据,然后做出相应的反应 – 如果它们没有以应有的速度超速,那么……你的提供商超卖了。 这样简单。

  • 码。 可能是你需要更多的RAM(计算机正忙着交换到RAM而不是处理),或蹩脚的编码是使用所有的CPU到一定程度,使内核级TCP堆栈反应不正确(是的,ICMP答复是这么低)。 这将是残酷的 – 但它是另一个检查的途径。 也可能是因为太频繁地访问光盘,而不是在RAM中caching,导致光盘过载,但我无法看到导致丢失的ping。 这里的任何问题都不是pipe理员能够处理的,但是你必须抛硬件,或者拿一根棒子,直到他修好它(如果它是一个“愚蠢的”级别的错误,吃性能 – 如果不是这样的话,要想获得巨大的收益是很难的,这可能只是你需要更强大的硬件)。

它绝对不需要调整窗口 – 一个良好configuration的窗口可以提供比这更多的LOT。 我的文件服务器定期更长时间 – 从相对库存设置中提供4-6gigabit。

现在,你所给的所有数字都没有说真的。

  • 使用10-15%的CPU可能意味着交换。
  • 25%的内存使用可能是一个很好的指标,现在交换发生,但它可能仍然意味着CPU正在等待IO。
  • 10%-15%的networking使用手段 – 绝对没有,因为它只是networking的你的一面。 上游呢? 如果服务提供商将20台服务器放在1千兆位上行链路上的千兆位服务器上,那该如何呢?

最后一点很可能 – 丢包是一个很好的指标。 而这对你来说是不可见的。

我的build议….closures机器上的任何东西片刻,从一个大的静态文件进行外部速度testing。 我敢打赌你会遇到更高的拥堵。

到目前为止,您所做的任何事情 – maxuserport,tcpnumconnection,重新启动服务器,玩IIS设置 – 完全closures,在最好的地方什么都不做。 在缓慢的汽车上敲一下锤子就不会修理任何东西 – 特别是如果汽车行驶速度慢,因为它堵塞了交通堵塞。 我会撤消所有的变化,并开始分析问题,而不仅仅是你的服务器。 目前,我敢打赌networking拥塞。

ping是两台服务器的外部吗? 如果是这样,请尝试从服务器一ping到服务器二。 如果结果与从外部ping的结果完全不同,则表明问题可能不是由于服务器二而引起的。 此外,在资源监视器中查看驱动器的磁盘队列长度和活动时间 – 其中的更多信息可能会突出显示问题。