如何在Jupyter实验室/笔记本中使用交换空间/虚拟RAM?

问题描述

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

这些过程过于占用内存,以至于有时由于OOM而导致容器被逐出。

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

PS该问题没有提及交换空间的答案-Jupyter Lab freezes the computer when out of RAM - how to prevent it?

解决方法

您不能主动控制交换空间。

特别是在Kubernetes中,您只是不为Kubernetes容器提供内存限制。 至少不会因为OOM(内存不足)而杀死它。但是,我怀疑它是否会起作用,因为这将使整个节点脱离RAM,然后交换并变得非常缓慢,从而在某个时候被Kubernetes主服务器声明为已死。依次导致Pod在其他地方运行并重新开始。

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...