我的小型 (x2) 云服务运行和运行正常 4-6 天,但随后它变得无响应,需要通过 Azure 门户手动重新启动才能使其重新联机。
Windows 事件日志显示虚拟内存运行不足。2-3天后,我开始得到:
Windows 成功诊断出虚拟内存不足的情况。以下程序消耗的虚拟内存最多:WaIISHost.exe (3836) 消耗 3810709504 字节,CacheService.exe (1528) 消耗 823902208 字节,w3wp.exe (1728) 消耗 145485824 字节。
一段时间后服务开始失败(由于内存问题??):
应用程序:CacheService.exe 框架版本: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, Boolean) 在 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 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。
异常信息:Microsoft.ApplicationServer.Caching.ConfigStoreException
堆栈:在 Microsoft.ApplicationServer.Caching.CustomProviderProxy+<>c _DisplayClass5.<PerformOperation>b__3(System.Object)
在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System .Threading.ContextCallback, System.Object, Boolean) 在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
在 System.Threading.ThreadPoolWorkQueue.Dispatch() 在 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
最终 Http 请求开始失败:
进程信息:
进程 ID:3344
进程名称:w3wp.exe
帐户名称:NT AUTHORITY\NETWORK SERVICE
异常信息:
异常类型:HttpException
异常消息:分页文件太小,无法完成此操作。(来自 HRESULT 的异常:0x800705AF)在 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
在 System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()
在 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory , HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, 异常 appDomainCreationException)
页面文件太小,无法完成此操作。(来自 HRESULT 的异常:0x800705AF)
我不确定问题是虚拟内存配置得太低,还是内存使用率太高。WaIISHost.exe 虚拟内存使用量看起来确实很高,但似乎稳定在 4.1 GB 左右。
我不知道为什么 WaIISHost.exe 需要这么多,因为 Run() 方法只是做非常简单的内务活动,例如每隔几分钟 ping 一次站点以保持应用程序在白天运行。
Azure 门户中的可用内存监控显示该服务在崩溃前的整个期间有 300-800MB 的可用内存。
有什么想法有什么问题吗?如何将虚拟内存配置得更高?