首页 > 解决方案 > Ubuntu 上的 Jupyter 笔记本不会释放内存

问题描述

我在 Jupyter 笔记本单元格中有一段代码(Python 3.7),它生成一个包含 numpy 数组的 pandas 数据框(df)。

我只是通过查看 Ubuntu 中预装的系统监视器应用程序来检查 df 的内存消耗。

问题是,如果我第二次运行单元格,即使将 df 分配给同一个变量,内存消耗也会加倍。

如果我多次运行同一个单元,系统内存不足,内核将自行染色。

使用del dfgc.collect()不会释放内存。

重新启动笔记本内核是释放内存的唯一方法。

在实践中,我希望内存大致保持不变,因为我只是一遍又一遍地将新的 df 重新分配给同一个变量。

事实上,只有当我在 linux 机器和笔记本上运行代码时,内存才会累积。如果我通过终端运行相同的代码python script.py,或者如果我在 macOS 上运行相同的笔记本,内存压力不会改变,我可以多次运行同一个单元并且占用的内存保持稳定(如预期的那样)。

你能帮我指出问题出在哪里以及如何解决吗?

PS Python 和 Jupiter 都在 Ubuntu 18.04 上随 Anaconda 2018.12 一起安装。

我在 Ubuntu 社区上问过同样的问题,因为我不确定这是否与 python 本身严格相关,但到目前为止我没有得到任何答案。

标签: jupyter-notebookout-of-memory

解决方案


推荐阅读