【问题标题】:Some application pools are very slow at first load一些应用程序池在第一次加载时非常慢
【发布时间】:2013-03-23 23:08:57
【问题描述】:

following article 中所述,一些 .NET 应用程序池在第一次请求时会变得非常慢(大约 x4 倍)。问题仅涉及应用程序池。其中一些很慢,而另一些则不在相同的条件下:Web 应用程序、配置、文件权限等。

所以我的问题是,这怎么会发生?一个应用程序池如何变得比具有相同设置的另一个应用程序池慢,即使在重新启动它们之后,有没有办法修复/防止它?一旦应用程序池变慢,它就不会再次变快,即使停止和启动它也是如此。

我确保在每次测试之前回收应用程序池,以便所有测试都是“第一次请求”。

我发现了同样的问题,想知道这里有没有人找到解决这个奇怪问题的方法?

请注意这不是asp.net初始化速度的普遍问题。我们将同一服务器上的相同代码与两个应用程序池进行比较:通用(快速)和损坏(慢)。在两个相同(相同)微不足道(没有任何数据库访问等)之间切换两个应用程序池(相同的设置,但一个不合理的“慢”)测试 asp.net 应用程序改变它们的行为:一个启动非常慢,另一个 - 不是。

问题是:

  • 为什么应用程序池突然坏了(慢)?
  • 如何避免应用程序池变“慢”?
  • 如何修复损坏的应用程序池?是的,我们可以创建 无限的新应用程序池,但无论如何,这对于 生产环境。

UPD:我注意到问题甚至不限于“慢”应用程序池本身,而是其名称!如果您重命名“慢”应用程序池,它将再次变为“快”。如果您创建名为以前重命名(或删除)“慢”的新应用程序池,则此应用程序池再次变慢!

【问题讨论】:

  • 我在使用 Application Identity 的 .NET 4 集成应用程序池上遇到了同样的情况。慢的应用池你用的是什么身份?
  • 我在 Windows 2012 服务器上的 IIS 8.5 中遇到过这个问题。正如 OP 所说,它与应用程序池的名称完全相关——一旦应用程序池开始出现“问题”或性能不佳,就必须创建和使用具有不同名称的新应用程序池。我通过将相同的 API 发布到一台服务器上的两个域和另一台服务器上的两个域共 4 个实例来测试这一点——就响应时间而言,它们应该具有大致相同的性能,但有问题的应用程序池总是表现不佳直到池更新。

标签: asp.net .net-4.0 application-pool


【解决方案1】:

我有一个类似的问题,我有一个应用程序池生成 WCF 错误,说它处于故障状态。我尝试创建一个新的应用程序池并测试相同的代码,它运行良好。然后我删除了旧的应用程序池并将新的应用程序池重命名为旧的应用程序池,问题又回来了!所以似乎有一些东西被保存在与应用程序池相关的某个地方,当应用程序池被删除时,这些东西不会被删除。很奇怪..通过将它重命名为其他任何东西,它又可以工作了。但是如果我把它改回原来的名字,它就会抛出错误!我只是希望我们不必不断更改应用程序池名称..

【讨论】:

  • 还是有这个问题。我想知道您是否设法找到解决方案?
【解决方案2】:

哈哈。这有点像当您启动拉式割草机时。执行初始请求并初始化数据库需要一些时间。我们过去每次在共享点服务器上执行 IIS 重置时都会注意到这一点。它必须获取 web.config,连接到数据上下文或数据库,在站点开始发出请求之前做很多事情。一旦运行并拥有所有组件和运行时,尽管它很顺利。进行需要在夜间或下班时间进行 iisreset 的维护通常是好的,因此当用户第一次启动时,它会更快。您最不想要的就是您的 CEO 或副总裁,成为第一个访问您网站的人。

另外,您拥有的应用程序池越多,占用的内存就越多。我知道使用 SharePoint 应用程序池,每个池占用 250MB 内存。减少使用和资源消耗的最佳选择是将其分配到多个 Web 服务器场/集群中,该集群对请求执行某种轮询或负载平衡。在给定点点击的用户越多,初始请求的速度就越慢。

【讨论】:

  • 我遗漏的另一件事是 NTFS 安全性。根据您是使用集成的 Windows 安全性还是本地密码或 KERBEROS/证书,还是在您的站点上使用加密的 SSL,也会增加初始加载时间和开销。几乎忘记安全/身份验证!
  • 这都是通用的,与具体问题无关。无论如何感谢您的回答。同意,最好将应用程序合并到一个池中,这样可以节省内存。但另一方面会降低稳定性:如果您的池崩溃,所有池中的应用程序都会向您的 CEO 或副总裁显示“服务不可用”。 )
【解决方案3】:

默认情况下,应用程序池设置为在一段时间后回收。我认为默认是 20 分钟。回收后,必须在第一次请求时重新加载。这可能就是你正在经历的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2013-07-08
    • 1970-01-01
    • 2014-09-20
    相关资源
    最近更新 更多