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

Mon*_*ffy 9 windows iis-7 windows-server-2008-r2

到目前为止,我试图弄清楚如何解决这个问题已经有几天了。首先,我正在运行一个平均每日页面浏览量为 350,000 的网站。以前,所有广告管理(跟踪每个广告投放的点击和展示)和内容都在具有以下规范的单个服务器中提供:

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

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

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

问题
问题是 Server 1可以同时处理内容和广告系统。现在,我拿走了广告系统并将其放在Server 2. Server 2只能勉强提供广告系统。

测试

  • 首先,我将 75% 的广告移至Server 2. 然后,对服务器执行 ping: ping -t xxxxx。[我进行了 10 分钟的 ping,其以下类似的模式如下]
回复来自 xxxxx bytes=32 时间=290ms TTL=116
回复来自xxxxx bytes=32 time=289ms TTL=116
回复来自 xxxxx bytes=32 时间=320ms TTL=116
回复来自xxxxx bytes=32 time=286ms TTL=116
回复来自xxxxx bytes=32 time=286ms TTL=116
回复来自xxxxx bytes=32 time=348ms TTL=116
回复来自 xxxxx bytes=32 时间=284ms TTL=116
  • 然后,我将 100% 的广告移至Server 2. 然后,再次对服务器执行 ping 操作。[我进行了 10 分钟的 ping,其以下类似的模式如下]
回复来自 xxxxx bytes=32 时间=290ms TTL=116
请求超时
回复来自 xxxxx bytes=32 时间=320ms TTL=116
回复来自xxxxx bytes=32 time=286ms TTL=116
请求超时
请求超时
回复来自 xxxxx bytes=32 时间=284ms TTL=116

尝试

  1. 增加MaxUserPortTcpNumConnection
  2. 重启服务器
  3. 增加 IISMax InstancesInstance MaxRequests

服务器资源

  • 仅使用 10%-15% 的网络连接
  • 仅使用 10%-15% 的 CPU
  • 只使用了 25% 的内存

Tom*_*Tom 4

好吧,让我们开始吧。这个更长了。

\n\n

看来你完全误判了事实。Windows - 即使是过时的 2008 R2(您应该尽快更新) - 完全能够处理我的手机处理的音量,没有问题。

\n\n

因此,这留下了 3 个可能的问题领域:

\n\n
    \n
  • 安装。你的司机可能很蹩脚。假设您运行的是过时的操作系统 - 您的驱动程序有多好?更新它们 - 这可能会导致各种问题。

  • \n
  • 网络。当问题是你大部分时间都花在交通堵塞上并抱怨交通不畅通时,这看起来就像“我的车太慢了,请帮我让它更快”。不是汽车改装问题。10tb 的流量并不能说明网络拥塞。观察你的网卡上的网络流量统计数据,然后做出相应的反应 - 如果它们没有达到应有的速度......你的提供商已经超卖了。就这么简单。

  • \n
  • 代码。可能是您需要更多 RAM(计算机正忙于换出 RAM 而不是进行处理),或者蹩脚的编码正在使用您的所有 CPU,导致内核级 TCP 堆栈无法正常反应(是的,ICMP 回复就是那么低)。这将是残酷的——但这是另一种检查途径。也可能是您过于频繁地访问光盘而不是缓存在 RAM 中,从而导致光盘过载,但我不知何故没有看到这会导致 ping 丢失。不过,这里的任何问题都不是管理员可以处理的——你必须向它扔硬件,或者用棍子打程序员,直到他修复它(如果这是一个“愚蠢”级别的错误,会影响性能——如果不是,那么要获得重大收益就困难得多,并且可能只是您需要更强大的硬件)。

  • \n
\n\n

它绝对不需要对窗口进行调整——配置良好的窗口可以提供更多的功能。我的文件服务器在较长时间内定期 \xc3\x9f - 从相对库存的设置中提供 4-6gigabit。

\n\n

现在,你给出的所有数字都没有说明什么。

\n\n
    \n
  • 使用 10-15% CPU 可能意味着交换。
  • \n
  • 25% 内存被使用可能是一个很好的指标,现在正在发生交换,但它仍然可能意味着 CPU 正在等待 IO。
  • \n
  • 10%-15% 的网络被使用意味着——绝对没有什么,因为它只是你这边的网络。上游呢?如果提供商将 20 台 1 GB 带宽的服务器放置在机架的 1 GB 上行链路上,而该上行链路严重溢出,该怎么办?
  • \n
\n\n

最后一点很可能 - 丢弃的数据包是一个很好的指标。这对您来说是不可见的。

\n\n

我的建议......暂时关闭机器上的所有内容,使用大型静态文件从外部进行速度测试。我敢打赌你在更高的地方会遇到拥堵。

\n\n

到目前为止,您所做的任何事情 - maxuserport、tcpnumconnection、重新启动服务器、调整 IIS 设置 - 都完全关闭,并且在最佳位置什么都不做。用锤子敲打一辆慢速汽车并不能解决任何问题——尤其是当汽车因为交通堵塞而速度缓慢时。我将撤消所有更改并开始分析问题,而不仅仅是您的服务器。我敢打赌目前网络拥塞。

\n

  • “过时的 2008 R2,您应该尽快更新”:这既不正确(2008R2 不是“过时”,也不应该“仅仅因为”更新),而且在答案的上下文中没有任何意义。其余的内容对改善您的答案几乎没有帮助,因为它没有提供识别问题的有用步骤,更不用说解决问题了,它只是提供有关性能的通用(并且只是温和地讨论主题)建议。 (4认同)
  • “即使是过时的 2008 R2,您也应该尽快更新” - 来吧,TomTom,抓紧时间。2008 R2 仍然处于主流支持范围内,距离脱离扩展支持还有很长的路要走,我相信这是在 2020 年...... (3认同)