如以下文章所述,一些 .NET 应用程序池在第一次请求时变得非常慢(大约 x4 倍)。问题仅涉及应用程序池。其中一些速度很慢,而另一些则不在相同的条件下:Web 应用程序、配置、文件权限等。
所以我的问题是,这怎么会发生?一个应用程序池如何比具有相同设置的另一个应用程序池慢,即使在重新启动它们之后,有没有办法修复/防止它?一旦应用程序池变慢,它就不会再次变快,即使停止和启动它也是如此。
我确保在每次测试之前回收应用程序池,以便所有测试都是“第一次请求”。
我发现了同样的问题,想知道这里是否有人找到了解决这个奇怪问题的方法?
请注意这不是asp.net初始化速度的普遍问题。我们将同一服务器上的相同代码与两个应用程序池进行比较:通用(快速)和损坏(慢)。在两个相同(相同)的微不足道(没有任何数据库访问等)之间切换两个应用程序池(相同的设置,但一个不合理的“慢”)测试 asp.net 应用程序改变它们的行为:一个启动非常慢,另一个 - 不是。
问题是:
- 为什么应用程序池突然坏了(慢)?
- 如何避免应用程序池变得“慢”?
- 如何修复损坏的应用程序池?是的,我们可以创建无限的新应用程序池,但无论如何,这对于生产环境来说是奇怪且不可接受的。
UPD:我注意到这个问题甚至不限于“慢”应用程序池本身,而是它的名称!如果您重命名“慢”应用程序池,它将再次变为“快”。如果您创建名为以前重命名(或删除)“慢”的新应用程序池,则此应用程序池再次变慢!