Jupyter笔记本:内核突然重启

4

我使用Jupyter lab和Jupyter Notebook来进行深度学习程序的开发,所以我通常会花费很长时间来训练我的模型。但是最近几周,我在训练数小时后不断遭遇内核重新启动的问题,这非常令人困扰。此外,服务器控制台或浏览器日志只提供了极少的信息:

Jupyter-lab服务器日志:

[I 2021-02-26 00:40:03.756 ServerApp] AsyncIOLoopKernelRestarter: restarting kernel (1/5), keep random ports
kernel 1330ee40-a826-44e2-9be9-f123deeaa1b2 restarted
[I 2021-02-26 00:40:04.070 ServerApp] Starting buffering for 1330ee40-a826-44e2-9be9-f123deeaa1b2:1b7fa111-f2d2-4804-bd90-c81e26562254
[I 2021-02-26 00:40:04.112 ServerApp] Restoring connection for 1330ee40-a826-44e2-9be9-f123deeaa1b2:1b7fa111-f2d2-4804-bd90-c81e26562254

当我使用Jupyter-lab时,我遇到了与使用Jupyter-notebook相同的问题。

一些注释:

  • 服务器和客户端不在同一台机器上,因此我使用ssh连接到服务器,如此处所述。
  • 我在公司代理下工作。
  • 我使用Tensorflow 2进行深度学习。
4个回答

1

好的,我认为我找到了错误的原因->这肯定是我运行的代码中存在一些小内存泄漏导致程序在几百个周期后崩溃。


1

谢谢你的好建议,我会在星期一尝试并在星期四反馈。然而,我对这个解决方案不是很确定,因为在服务器端我没有发现任何断开连接的迹象,即使jupyter进程仍在运行,只有内核重新启动了。 - vincent59

0
一些相关信息: 我在使用从Kubeflow创建的Jupyter Notebooks中的CUDA-DL库时也遇到了这个问题。
AsyncIOLoopKernelRestarter: restarting kernel (1/5), keep random ports

在这种情况下,是由于Kubeflow创建用于部署Jupyter服务器的Pod分配的内存不足。 解决方案就像在创建笔记本时分配更多内存(从~4Gi开始)一样简单(并避免代码中的内存泄漏 :))。

0

不是答案,而是一些故障排除方法:

  • 从头开始运行笔记本,但只运行到某个单元格。
  • 向上/向下查找,直到找到失败的位置。
  • 如果之前没有出现问题,请考虑添加了什么。

在我的情况下,我添加了

test_eq(dill.pickles(var),True) # 检查它是否可以被pickle

dill.pickles 在测试内外都会导致重启,但不一定是在运行该行代码时,可能是几行愚蠢的代码之后(很奇怪,我知道)。

我检查了RAM,看起来正常。

注释掉它解决了问题。(无法想象为什么)。

现在我进行测试:

pp=dill.loads(dill.dumps(al_es))
test_eq(is_a_valid_object(pp),True)
# is_a_valid_object is my own function
# test_eq is from fastcore.test.test_eq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接