0

我在 Azure 上的 S3 标准平台上运行了一个网络作业,这意味着它有 7 GB 的内存可用于运行我的应用程序。

在这台机器上,有 3 个作业正在运行,其中一个负责所有处理,另外两个负责处理小任务。我的问题在于,我在某些内存密集型大型任务上遇到内存异常,这意味着导致给定作业崩溃。

我尝试运行的工作是一项非常占用内存的工作,并且需要大约 1.5 GB 的内存,但根据下图,我不明白这应该是一个问题,因为我从来没有超过 2.2 GB 的已用内存应用服务。我必须补充一点,我运行了 3 个实例,因此可能是一个实例正在使用更多内存,但我无法找到任何地方查看该信息。

服务器内存消耗

当我在 Kudo 中查看进程资源管理器时,我发现我目前使用了大约 1.3gb 的内存,这仍然远低于工作所需的内存。

工藤截图

该作业在不超过 2 天前在同一服务器设置上运行没有任何问题,所以我完全不知道在哪里看。

更新:代码在 Visual Studio 中运行良好,相同的数据运行相同的确切任务。

有没有人对如何解决这个问题有想法

4

2 回答 2

0

据我了解,您可以在 azure 应用服务中捕获内存转储并分析转储以缩小此问题。您可以参考本教程了解如何在 Azure 应用服务中获取完整的内存转储。此外,您可以利用Crash Diagnoser扩展来监控 CPU 和内存,有关更多详细信息,您可以参考此博客

于 2017-09-25T02:51:53.620 回答
-1

好吧好吧首先你如何处理垃圾收集器?!我的意思是你会在他们完成任务后处理一次性物品吗?您说应用程序正在运行 2 天,似乎应用程序与更密集的内存加载内容发生冲突。正如您所说,您的应用程序“非常占用内存”,我想您应该将其取出(源代码)并确保您正确管理对象,因为垃圾收集器不会关心您所有的“源代码混乱”。祝你好运。

于 2017-09-22T11:19:34.533 回答