在服务器上但不是本地计算机上处​​理MemoryError

时间:2018-11-15 17:35:19

标签: python .net out-of-memory windows-server-2012-r2

我有一个.Net Console应用程序,该应用程序生成一个进程来执行python脚本。该输入是一个较大的输入,大约1GB,需要经过一些图像处理步骤。 python脚本包装在try/except块中,该块仅返回有关结果的消息(hacky,但这就是生命)。我发现的问题是该文件将不会在2个单独的服务器上处理,但是它将在我的本地计算机上处​​理而没有错误。

服务器规格:Windows Server 2012 R2 Standard,四核Intel Xeon,32GB RAM-AWS EC2 本地计算机:Windows 10 Pro,四核i7、16GB RAM-开发计算机/笔记本电脑

Python在两个实例中具有相同需求包的虚拟环境中运行,代码相同,但是在AWS EC2服务器实例上运行时,某些东西正在杀死该进程。

我可以在本地计算机上的任务管理器中看到RAM峰值,但是当我在服务器上运行它时,python进程寿命很短,以至于我找不到它,也看不到任务管理器中的RAM峰值。 / p>

我又收到错误消息MemoryError,所以我知道python至少正在启动脚本并遇到错误。在本地,启动时python的峰值内存约为10-11GB,因此我不希望RAM真正成为限制因素。

Windows Server软件中是否有某些系统策略或其他保护设备可以阻止python分配必要的RAM?没有通过AppPool运行的东西,它是一个简单的Console .exe程序。是什么导致python那样死掉?

编辑: 我一直在逐行浏览我拥有的python脚本。该错误似乎源于:someVar = np.zeroes([largeNumber, largeNumber2]).astype('uint8') ...根据我收集的numpy文档,astype方法在内存中创建了一个副本。

它仍然不能帮助我弄清楚为什么它在本地而不是在服务器上运行。

0 个答案:

没有答案