MVC应用程序在重新启动后,每个页面都变得缓慢。
MVC应用程序在重新启动后,每个页面都变得缓慢。
除了著名的慢启动问题外,我们在运行在IIS上的ASP.NET应用程序中还遇到了另一个问题。
在应用程序刚启动(例如iisreset)之后,第一个请求通常需要一些时间。然而,在当前应用程序中,对尚未加载的页面的所有其他请求在第一次访问时需要大约10-12秒的时间!
页面加载完成后,对同一资源的所有其他请求再次变得很快(通常为80-130毫秒)。这对于来自其他客户端机器的首次加载也是如此,所以这不是一个客户端缓存问题。
例如:
机器 | 请求 | 持续时间 | A | GET / | 43000 ms |(唤醒) A | GET / | 90 ms | B | GET / | 90 ms | A | GET /registration | 12000 ms | A | GET /registration | 110 ms | A | GET /registration | 110 ms | A | GET /registration | 110 ms | A | GET /foobar | 11000 ms | A | GET /foobar | 85 ms | B | GET /baz | 10000 ms | A | GET /baz | 100 ms |
有趣的是,当我们在开发机器上运行应用程序时(debug=true等),这种情况不会发生。只有当我们发布网站(debug=false,预编译等)时,才会出现这种行为。
所有静态资源都已正确打包和缓存,并且没有一个请求可能需要超过1秒的时间。应用程序池和网站都被配置为自动启动并永久运行。
如果有任何线索,我将非常感激。