首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jupyter Lab在内存不足时冻结计算机-如何防止这种情况?

Jupyter Lab在内存不足时冻结计算机-如何防止这种情况?
EN

Stack Overflow用户
提问于 2019-10-16 02:11:32
回答 7查看 8.7K关注 0票数 16

我最近开始使用Jupyter Lab,我的问题是我使用的是相当大的数据集(通常数据集本身大约。计算机内存的1/4 )。经过几次转换,保存为新的Python对象后,我往往会耗尽内存。问题是,当我接近可用的RAM限制并执行任何需要另一个RAM空间的操作时,我的计算机就会死机,唯一的解决方法就是重新启动它。这是Jupyter Lab/Notebook的默认行为,还是我应该设置的一些设置?通常,我预计程序会崩溃(例如在RStudio中),而不是整个计算机崩溃

EN

回答 7

Stack Overflow用户

发布于 2019-10-23 16:50:00

如果您使用的是基于Linux的操作系统,请查看面向对象模型杀手,您可以从here获取信息。我不知道Windows的详细信息。

您可以使用earlyoom。它可以按照您的意愿进行配置,例如,earlyoom -s 90 -m 15将启动earlyoom,当交换大小小于%90且内存小于%15时,它将杀死导致OOM的进程,并防止整个系统冻结。您还可以配置进程的优先级。

票数 7
EN

Stack Overflow用户

发布于 2019-10-22 22:00:36

对于这个问题,最健壮的解决方案绝对是使用Docker容器。您可以指定将多少内存分配给Jupyter,如果容器耗尽内存,这根本不是什么大问题(只需记住经常保存,但这是不言而喻的)。

This blog会带你走完大部分的路。这里还有一些关于设置Jupyter Lab的说明,这些说明来自免费提供的、官方维护的Jupyter镜像:

https://medium.com/fundbox-engineering/overview-d3759e83969c

然后,您可以将本教程中所述的docker run命令修改为(例如,对于3 3GB):

代码语言:javascript
运行
复制
docker run --memory 3g <other docker run args from tutorial here>

有关坞站内存选项的语法,请参阅以下问题:

What unit does the docker run "--memory" option expect?

票数 6
EN

Stack Overflow用户

发布于 2019-10-17 07:10:54

我也在Jupyter Lab上使用非常大的数据集(3 3GB),在Labs上也遇到了同样的问题。不清楚您是否需要保持对转换前数据的访问,如果不需要,我已经开始使用未使用的大型数据帧变量的deldel从你的内存中删除变量。编辑**:我遇到的问题有多种可能性。当我使用远程jupyter实例时,以及在spyder中,当我执行大型转换时,我经常会遇到这种情况。

例如:

代码语言:javascript
运行
复制
df = pd.read('some_giant_dataframe') # or whatever your import is
new_df = my_transform(df)
del df # if unneeded.

杰克,你可能也会发现这个thread on large data workflows很有帮助。我一直在研究Dask来帮助解决内存存储问题。

我在spyder和jupyter中注意到,当运行大内存控制台时,在另一个控制台上工作时通常会发生freezeup。至于为什么它只是冻结而不是崩溃,我认为这与内核有关。有几个内存issues open in the IPython github - #10082和#10117似乎最相关。一位用户here建议在jedi中禁用制表符补全功能或更新绝地武士。

在10117中,他们建议检查get_ipython().history_manager.db_log_output的输出。我有相同的问题,我的设置是正确的,但它值得检查

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58400437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档