首页 > 解决方案 > 如何在 Jupyter 实验室/笔记本中使用交换空间/虚拟 RAM?

问题描述

我在 Jupyter(实验室)中运行在 Kubernetes 上运行的 JupyterHub 创建的容器中的进程。

这些进程过于占用 RAM,以至于 Pod 有时会因 OOM 而被驱逐。

如果不修改我的代码/算法等,在一般情况下,当达到预定义的 RAM 限制时,我如何告诉 Jupyter(Lab) 使用交换空间/虚拟内存?

PS 这个问题没有提到交换空间的答案 - Jupyter Lab 在内存不足时冻结计算机 - 如何防止它?

标签: pythonkubernetesjupyter-notebookjupyter-labjupyterhub

解决方案


您无法主动控制交换空间。

特别是在 Kubernetes 中,您只是不为 Kubernetes pod 提供内存限制。由于OOM(内存不足),这至少不会杀死它。但是,我怀疑它会起作用,因为这会使整个节点耗尽 RAM,然后交换并变得非常慢,因此在某些时候被 Kubernetes 主节点宣布死亡。这反过来又会导致 Pod 在其他地方运行并重新开始。

对您而言,一种更具可扩展性的方法可能是使用核外算法,该算法可以直接在磁盘上运行(因此只需将 PV/PVC 附加到您的 pod),但这取决于您使用的算法或过程。


推荐阅读