由于潜在的性能问题,我刚刚将我的测试实例从一个小的“标准”(1核,1.75gb RAM)实例升级到中等“标准”实例(2核,3.5gb RAM),这似乎是一个快速打击。我们确实遇到了应用程序池回收问题以及必须重新调整某些代码模块的问题。因此,对于一个中型实例,我担心我可能通过让多个池处理来使我们的应用程序池问题变得更糟?
那么我的中型网站实例上会存在多少个应用程序池,一个或多个?
非常感谢提前。
P.S我认为其他性能问题与使用In-Proc会话配置有关
<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>
我意识到这是问题的边缘,但它可能有助于提供一些背景。
答案 0 :(得分:2)
无论VM的大小是多少,每个站点都会获得1个应用程序池。应用程序池基本上是IIS术语,用于指导您的站点的进程管理(例如:身份,配额,进程数等)。这真的是一个你不必担心的实现细节。
对于冷启动问题,您是否考虑为您的网站启用Always On
设置?
您还可以添加“应用程序初始化”条目以加热您想要的任何代码路径。这就是web.config
<applicationInitialization doAppInitAfterRestart="true" >
<add initializationPage="/" />
<add initializationPage="/Page2" />
<add initializationPage="/Page3" />
</applicationInitialization>
考虑在重新发布网站时使用staged publishing来解决冷启动问题