我试图找出问题所在。这是我发现的情况:脚本抛出异常:内存不足
我使用50个线程运行测试,调用我的Web应用程序的15个页面。内存似乎没问题。IIS进程只使用了400 MB的RAM。
我在web.config中添加了一个空格,然后我的IIS进程在30分钟内开始增长到超过1 GB。 Visual Studio无法对我的内存进行快照,因为它太大了(真的吗?!)。所以我安装了ANTS内存分析器,但它表示我的应用程序只使用了约300 MB
。
测试几分钟后停止,但内存未被释放。
似乎该应用程序并没有使用100-200MB的内存,尤其是我为我的控制器使用了输出缓存。我不明白的是,为什么IIS消耗的内存一直在增长,出了什么问题。更新:
我的应用程序由于W3WP崩溃而自动重启,导致IIS释放内存,而我的压力测试已经运行了一段时间:
和应用程序:w3wp.exe 框架版本:v4.0.30319 描述:该进程因.NET Runtime中IP 5A3A86F1(5A0F0000)的内部错误而终止,退出代码为80131506。
应用程序名称: w3wp.exe,版本: 10.0.15063.0,时间戳: 0xacce422f 故障模块名称: clr.dll,版本: 4.7.2098.0,时间戳: 0x59028d36 异常代码: 0xc0000005 故障偏移量: 0x002b86f1 故障进程 ID: 0x50a4 应用程序启动时间: 0x01d2ee688f323893 应用程序路径: C:\WINDOWS\SysWOW64\inetsrv\w3wp.exe 模块路径: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 报告 ID: 4362ddc5-f8d7-4441-8916-3830f9268b3a 故障包完整名称: 故障包相关应用程序 ID:
更新2
我运行了DebugDiag,并对该网站进行了压力测试,直到它消耗了约3.5 GB的内存。
Chakra是微软的一个库。
所以现在我有两个问题。
- 是ChakraCore泄漏了还是使用/分配它的库泄漏了?如何定义哪个库?
2- 它说有27,000个分配。这是否意味着仍有27,000个在内存中,或者其中一些可能已被分配并处置?
3- 它仍然没有告诉我关于剩余的3GB消耗的RAM的任何信息。它只有总共600MB(私有+虚拟)。
Script threw an exception: Out of memory
的截图吗?我特别想知道它是在服务器端还是客户端出现的。 - mjwills