【发布时间】:2014-07-27 00:47:28
【问题描述】:
我的网络作业做的很少,它会下载大约 3kb 的数据,然后更新我数据库中的一些信息。然而,在 webjob 启动后,当它正在下载信息时(或刚刚),抛出异常
[07/27/2014 00:12:47 > b2b30d: ERR ] Unhandled Exception: OutOfMemoryException.
你知道为什么会这样吗?
我使用完全相同的数据在本地运行 exe,它使用的内存最少,我看到最多 65mb,但我认为这不足以导致异常(或者 webjobs 有限制吗? )
我的内存使用统计数据(在 Azure 仪表板上)显示为 512 MB/小时的 54%(似乎我使用了很多,但仍有很多可用)。 文件系统存储 1024 MB 的 9% 我正在使用共享主机计划模式。
在引发异常之前没有命中数据库,因此这不是数据库问题。
更新 - 使用 System.Diagnostic 在 Azure 上的诊断信息
[07/28/2014 09:07:19 > b2b30d: INFO] WorkingSet64:10.54297
[07/28/2014 09:07:19 > b2b30d: INFO] TotalPhysicalMemory:14335.55
[07/28/2014 09:07:19 > b2b30d: INFO] AvailablePhysicalMemory:8458.691
[07/28/2014 09:07:20 > b2b30d: INFO] OutOfMemoryException
[07/28/2014 09:07:20 > b2b30d: INFO] WorkingSet64:41.33594
[07/28/2014 09:07:20 > b2b30d: INFO] TotalPhysicalMemory:14335.55
[07/28/2014 09:07:21 > b2b30d: INFO] AvailablePhysicalMemory:8443.027
所以,我的程序启动并使用 10mb,做了一些工作,然后抛出一个 outofmemoryexception,在抛出 outofmemoryexception 的点内存增加到 41mb。没想到 41mb 的 exe 对 webjob 来说太大了,为什么会出现这种情况?
【问题讨论】:
-
启动和停止网站会暂时修复问题,但一段时间后内存不足。
-
所以我刚刚添加了一些诊断信息,我会看看显示的内容。
-
能回答你问题的只有你自己。在类似的数据集上运行内存分析器,看看是什么占用了你的大部分内存。我很确定问题不在于 Azure 平台。
-
因此,在服务器上,WorkingSet64 为 10mb,TotalPhysicalMemory:14,335mb 和 AvailablePhysicalMemory:7,866mb
-
这是一个专门的网站还是免费的?
标签: azure azure-webjobs