由于潜在的性能问题,我刚刚将测试实例从小型“标准”(1 核,1.75GB RAM)实例升级到中型“标准”实例(2 核,3.5GB RAM),这似乎是快速击中。我们确实存在应用程序池回收和必须重新预热某些代码模块的问题。因此,对于中等实例,我担心我可能会因为需要处理多个池而使我们的应用程序池问题变得更糟?
那么我的中型网站实例上会存在多少个应用程序池,是一个还是多个?
提前非常感谢。
P.S 我认为其他性能问题与使用有效的进程内 session 配置有关
<sessionState mode="InProc" timeout="30">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
我意识到这是问题的外围,但它可能有助于提供一些背景信息。
最佳答案
无论虚拟机大小如何,每个站点都可以获得 1 个应用程序池。应用程序池基本上是 IIS 术语,用于描述如何对站点进行进程管理(例如:身份、配额、进程数量等)。这实际上是一个您不必担心的实现细节。
对于冷启动问题,您是否考虑过为您的网站启用Always On
设置?
您还可以添加应用程序初始化条目来预热您想要的任何代码路径。这就是 web.config
<applicationInitialization doAppInitAfterRestart="true" >
<add initializationPage="/" />
<add initializationPage="/Page2" />
<add initializationPage="/Page3" />
</applicationInitialization>
并考虑使用staged publishing重新发布网站时避免冷启动
关于asp.net-mvc - Azure 网站,中型实例,2 核,多少个应用程序池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24509938/