我有小型(x2)云服务运行正常并且运行良好4-6天,但随后它变得无响应,并且需要通过Azure门户手动重新启动以使其恢复联机。Azure服务在几天后死亡
Windows事件日志显示虚拟内存不足。 2-3天后,我开始得到:
Windows成功诊断出低虚拟内存条件。 以下程序消耗了最多的虚拟内存:WaIISHost.exe (3836)消耗3810709504个字节,CacheService.exe(1528)消耗 823902208个字节,w3wp.exe(1728)消耗145485824个字节。
一段时间后,服务启动失败(由于内存不足的问题?):
应用:CacheService.exe Framework版本:v4.0.30319
说明:该工艺由于终止未处理的 异常。例外的信息: Microsoft.ApplicationServer.Caching.ConfigStoreException
堆栈:在 Microsoft.ApplicationServer.Caching.CustomProviderProxy + <> C_ DisplayClass5.b _3(System.Object的)
在 System.Threading.ExecutionContext.Run( System.Threading.ExecutionContext, System.Threading.ContextCallback,System.Object的,布尔值)处 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
在System.Threading.ThreadPoolWorkQueue.Dispatch()的System.Threading。 ThreadPoolWaitCallback.PerformWaitCallback()
| HTTP://schemas.microsoft.com/win/2004/08/events/event'> 1026200x800000000000001138ApplicationRD00155D45A2ADApplication: CacheService.exe Framework版本:v4.0.30319说明: 该过程终止,因为到未处理的异常。
异常信息: Microsoft.ApplicationServer.Caching.ConfigStoreException
堆栈:在 Microsoft.ApplicationServer.Caching.CustomProviderProxy + < >Ç _DisplayClass5。 <PerformOperation> b__3(System.Object的)
处 System.Threading.QueueUserWorkItemCallback.System System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback,System.Object的,布尔值)。 Threading.IThreadPoolWorkItem.ExecuteWorkItem()
在System.Threading.ThreadPoolWorkQueue.Dispatch()在 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
,并最终Http请求启动失败:
进程信息:
进程ID:3344
进程名称:w3wp。EXE
帐户名:NT AUTHORITY \ NETWORK SERVICE
异常信息:
异常类型:HttpException
异常消息:分页文件太小,无法完成操作。在 System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()
在System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
在System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager AppManager的:(0x800705AF从HRESULT异常) ,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel,Exception appDomainCreationException)
页面文件太小,无法完成此操作。 (从HRESULT异常:0x800705AF)
我不知道,如果问题是虚拟内存配置过低,或者是利用内存太高。 WaIISHost.exe虚拟内存使用肯定看起来相当高,但它似乎稳定在4.1 GB左右。
我不知道为什么WaiISHost.exe需要这么多,因为Run()方法只是在做非常轻松的内务处理活动,比如每隔几分钟对网站执行ping操作以保持应用程序在白天运行。
Azure Portal中的可用内存监视显示该服务在崩溃之前的整个时间段内具有300-800MB的可用内存。
任何想法是什么问题?我如何配置更高的虚拟内存?
你显然有某种内存泄漏。你保留的任何变量(静态或其他)?日志?收藏?甚至可能通过依赖注入框架创建一些东西?与此同时,您总是可以编写一个简单的PowerShell脚本来每晚重新启动实例,直到找出结果。 – Jaxidian 2013-05-08 17:24:34