我们的负载平衡 Web 服务器存在一个主要问题。如果我们为最大的网站打开 IIS 日志记录,它会使服务器严重瘫痪,以至于我们的大多数请求都会超时。一旦我关闭日志记录,服务器就会再次运行良好。有哪些可行的解决方案可以记录我们的网络流量并且没有这个瓶颈?
我们有 2 台运行 Windows Server 2003 和 IIS 6 的负载平衡 VMWare 虚拟服务器,它们只处理我们的网站/网络流量,没有其他事情(数据库和邮件位于不同的服务器上)。
编辑:我忘记的一个问题是文件保存到连接到 NAS 的单独文件服务器中。
如果您只关心正在访问的实际页面(HTML、ASPX 等),那么也许将您的其他静态资源(图像、css、js)移动到单独的文件夹中——如果它们还没有被隔离的话——然后禁用这些文件夹的日志记录。由于每个网页通常会加载多个其他静态资源,因此您可以大大减少您的日志记录活动,同时仍然记录对您关心的页面的访问。
服务器是否登录到与提供服务的站点相同的磁盘?您可以查看启用日志记录的平均磁盘 I/O 时间。将写入转移到另一个驱动器可能有助于加快速度。
您可以考虑限制在 IIS 中记录的内容。例如,假设您不需要记录对每个图像文件、脚本文件或其他文件的访问。IIS 6 中有一个选项可以限制记录的内容:
限制登录 IIS 的内容
在 IIS 7 中做同样的事情有点不同:
限制登录 IIS 7 的内容
我在我的 Web 服务器上实现了这一点,删除了图像、脚本和一些杂项处理程序,并注意到日志大小比以前小了 75%。显然,这样做时,您无法在日志文件中看到排除项目的条目,但我主要关心的是页面访问。
我在评论中读到您正在登录到 SAN。要确认 SAN 的延迟特性是否导致问题,请尝试登录硬盘驱动器一天。
您应该仔细检查您的存储,可能它的写入性能不足。您还可以检查正在使用的 RAID 级别。如果是 RAID 5,您应该考虑使用更快的阵列,例如 RAID 10、01、10E。您也可以考虑为日志创建一个单独的 RAID 卷,这样它就不会干扰 IIS 操作。
此外,您可能混淆了 NAS 和 SAN。这些是不同的技术性能明智。如果您确实在使用 NAS,则应三思而后行,因为该技术并不总是适合高 I/O 负载。