【问题标题】:How to make Jupyter Notebook Kernel throw Out Of Memory Error in Kubernetes如何让 Jupyter Notebook 内核在 Kubernetes 中抛出内存不足错误
【发布时间】:2019-03-06 04:39:28
【问题描述】:

我通过 Kubernetes 集群为 jupyter notebook 提供服务。我设置了resources.limits 以防止有人耗尽所有主机服务器的内存。

虽然一个问题是jupyter notebook内核在crash和自动重启后在容器超出内存后不会抛出任何OOM错误,这会让用户很困惑。

那么如何让 jupyter notebook 在运行 Kubernetes 时引发 OOM 错误?

【问题讨论】:

  • 不幸的是,您所问的真正问题尚不清楚。您能否澄清一下您是否正在 Kubernetes 内部寻找解决方案?您是否正在寻找一种解决方案来向您显示包含 Jupyter Notebook 的 pod 已被 OOM 杀死的消息?或者您想以某种方式通知用户它由于内存限制而被杀死?或者您正在寻找一种解决方案,以防止 pod 因 OOM 而被杀死。
  • 感谢您的建议。我确实想寻求一种解决方案来显示包含 Jupyter Notebook 的 pod 已被 OOM 杀死的消息。我已经更新了我的问题。
  • 如果我错了,请纠正我,但你的问题应该是 - 我如何通知用户相应的内核存在问题。

标签: python docker kubernetes jupyter-notebook


【解决方案1】:

如果你只有一个特定的 pod,你可以监控事件/日志,as in here:

kubectl get events --watch 
kubectl logs -f podname

话虽如此,pod lifecycle 中的所有事件都没有得到正确报告,如kubernetes/kubernetes issue 38532 和(已放弃的)PR 45682 所示。
但是当docker inspect'ing pod 时,您仍然应该看到OOMKilled:true

【讨论】:

  • 所以还是不能让python抛出OOM错误?
  • @aisensiy python 可以抛出 OOM,但是您需要测试 docker inspect 是否确实报告了它,正如我在答案的最后部分中提到的那样。
【解决方案2】:

请查看这篇文章“Jupyter notebook: memory usage for each notebook”中关于在超过一定内存时杀死笔记本的解决方案。

nbtop 还有另一个不错的界面(如顶部)。

【讨论】:

    猜你喜欢
    • 2019-08-01
    • 2022-01-10
    • 2022-12-31
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 2014-10-13
    相关资源
    最近更新 更多