python - 如何在 Jupyter 实验室/笔记本中使用交换空间/虚拟 RAM?
问题描述
我在 Jupyter(实验室)中运行在 Kubernetes 上运行的 JupyterHub 创建的容器中的进程。
这些进程过于占用 RAM,以至于 Pod 有时会因 OOM 而被驱逐。
如果不修改我的代码/算法等,在一般情况下,当达到预定义的 RAM 限制时,我如何告诉 Jupyter(Lab) 使用交换空间/虚拟内存?
PS 这个问题没有提到交换空间的答案 - Jupyter Lab 在内存不足时冻结计算机 - 如何防止它?
解决方案
您无法主动控制交换空间。
特别是在 Kubernetes 中,您只是不为 Kubernetes pod 提供内存限制。由于OOM(内存不足),这至少不会杀死它。但是,我怀疑它会起作用,因为这会使整个节点耗尽 RAM,然后交换并变得非常慢,因此在某些时候被 Kubernetes 主节点宣布死亡。这反过来又会导致 Pod 在其他地方运行并重新开始。
对您而言,一种更具可扩展性的方法可能是使用核外算法,该算法可以直接在磁盘上运行(因此只需将 PV/PVC 附加到您的 pod),但这取决于您使用的算法或过程。
推荐阅读
- .net-core - 将 Dynamics CRM SDK 与 .NET Core 结合使用
- c# - 如何使用#pragma 警告禁用 CA1814?
- javascript - 用 span 替换部分字符串
- javascript - Chrome 控制台中奇怪的“e”或“t”表示什么
- excel - 从 Crystal Reports 2016 v14 中删除所有分页符 -> Excel 导出
- qt - Qt 使用带有 QAbstractItemModel 的预先存在的模型
- css - 如何自动设置 TD 宽度全部相等宽度
- excel - 复制 Book1 中的 B 列(单元格 B2) Book2 中的 B 列(单元格 B2)
- ssl - 通过任何 SSL 或 TLS 版本的 HTTPS 连接
- laravel-5 - Laravel nova 属于过滤器