2

我们有两个相同的负载平衡 Web 服务器(ws1 和 ws2)为同一个网站提供服务。目前两者都有一些爬虫,爬取 PDF 和包含大量图像的页面(平均每页可能 25 个)。两台服务器之间大约有 60 个并发用户,但到目前为止,爬虫发出的请求最多。ws1 上的 IIS 应用程序池消耗 ~500mb RAM,ws2 上的应用程序池消耗 ~2gb RAM(每台服务器上可用 4gb)。这些消耗水平已经持续了几个小时。我已将 IIS 配置为进行静态缓存和静态压缩,但我想不到这会影响 RAM 消耗。

问题是 ws2 的 RAM 快用完了,而且该服务器上的网页加载速度比 ws1 慢得多,这对我们的最终用户不利。

我的问题:

  • 50% 的可用 RAM(在 ws2 上约为 2gb)对于应用程序池来说似乎很多 - 是吗?
  • 我是否应该考虑任何编程/配置考虑来帮助服务器更好地管理其资源,尤其是 RAM,尤其是在涉及更大的请求(如 PDF 和图像)时?

我知道在这一点上这是非常通用的。我不知道包含哪些其他信息会有所帮助,所以请留下反馈,以便我可以用更详细的信息更新这个问题。

4

1 回答 1

0

最好的起点是确定什么正在使用所有这些内存。商业分析器如

http://www.red-gate.com/products/ants_performance_profiler/index.htm

http://www.jetbrains.com/profiler/

可以分析您在 IIS 中运行的代码。如果您可以在您的开发环境中重现该问题,Visual Studio 的内存分析器也应该能够诊断内存使用情况(也许有一种方法可以将它独立用于生产 IIS 实例......不确定)。

检查您的应用程序分配了哪些内存,以及分配了哪些内存。

于 2012-12-11T20:17:14.927 回答