我如何在 Jupyter lab/notebook 中使用交换 space/virtual RAM?
How can I make use of swap space/virtual RAM in Jupyter lab/notebook?
我在 Kubernetes 上的 JupyterHub 创建的容器中 运行 Jupyter(实验室)中的进程运行。
这些进程过于占用 RAM,以至于 pod 有时会因 OOM 而被逐出。
在不修改我的 code/algorithms 等的情况下,在一般情况下,我如何告诉 Jupyter(Lab) 在达到预定义的 RAM 限制时使用交换 space/virtual 内存?
PS 这个问题没有答案提到交换 space - Jupyter Lab freezes the computer when out of RAM - how to prevent it?
您无法主动控制交换 space。
特别是在 Kubernetes 中,您只是不为 Kubernetes pod 提供内存限制。
这至少不会因为 OOM(内存不足)而杀死它。但是,我怀疑它是否可行,因为这会使整个节点用完 RAM,然后交换并变得非常慢,因此在某个时候被 Kubernetes 主节点宣布死亡。这反过来又会导致 Pod 运行 到其他地方并重新开始。
一种更具可扩展性的方法可能是使用 out-of-core 算法,它可以直接在磁盘上运行(因此只需将 PV/PVC 附加到您的 pod),但这取决于算法或您正在使用的进程。
我在 Kubernetes 上的 JupyterHub 创建的容器中 运行 Jupyter(实验室)中的进程运行。
这些进程过于占用 RAM,以至于 pod 有时会因 OOM 而被逐出。
在不修改我的 code/algorithms 等的情况下,在一般情况下,我如何告诉 Jupyter(Lab) 在达到预定义的 RAM 限制时使用交换 space/virtual 内存?
PS 这个问题没有答案提到交换 space - Jupyter Lab freezes the computer when out of RAM - how to prevent it?
您无法主动控制交换 space。
特别是在 Kubernetes 中,您只是不为 Kubernetes pod 提供内存限制。 这至少不会因为 OOM(内存不足)而杀死它。但是,我怀疑它是否可行,因为这会使整个节点用完 RAM,然后交换并变得非常慢,因此在某个时候被 Kubernetes 主节点宣布死亡。这反过来又会导致 Pod 运行 到其他地方并重新开始。
一种更具可扩展性的方法可能是使用 out-of-core 算法,它可以直接在磁盘上运行(因此只需将 PV/PVC 附加到您的 pod),但这取决于算法或您正在使用的进程。