【问题标题】:How to increase Jupyter notebook Memory limit?如何增加 Jupyter 笔记本的内存限制?
【发布时间】:2020-01-16 18:27:03
【问题描述】:

我在 Windows 10 上使用带有 Python3 的 jupyter notebook。我的计算机有 8GB RAM,并且至少有 4GB 的 RAM 是空闲的。

但是当我想用这个命令制作一个大小为 6000*6000 的 numpy ndArray 时: np.zeros((6000, 6000), dtype='float64') 我得到了这个:Unable to allocate array with shape (6000, 6000) and data type float64

我认为这不能使用超过 100MB 的 RAM。 我试图改变号码,看看会发生什么。我可以制作的最大数组是(5000,5000)。我在估计我需要多少 RAM 时犯了错误吗?

【问题讨论】:

  • 这似乎是您操作系统上硬编码的限制。我不确定 windows 环境,但这里有解决方案:stackoverflow.com/questions/57507832/… 这似乎在 ubuntu 上解决了同样的问题。我建议你试试那个。
  • @nima:6K*6K 浮点数(每个 8 字节)将是 3600 万 * 8 字节 = 只有 288MB,这在大多数 >= 4GB 的笔记本电脑上都可以。但另一个问题是关于总大小为 283 GB 的 3D 数组,即大多数笔记本电脑的 1000 倍大和 >> 物理内存。
  • 检查 numpy ndarray 实际占用多少内存的明显方法是在普通 Python 控制台(不是 Jupyter)下运行,创建 ndarray,然后查看分配了多少内存。此外,如果它在控制台下工作并在 Jupyter 下失败,那么您知道这是由于 Jupyter 或其配置造成的。

标签: python numpy memory jupyter-notebook ipython


【解决方案1】:

Jupyter notebook 有一个默认的内存限制大小。您可以尝试按照以下步骤增加内存限制:
1) 使用命令生成配置文件:

jupyter notebook --generate-config
2) 打开位于“jupyter”文件夹内的 jupyter_notebook_config.py 文件并编辑以下属性:
NotebookApp.max_buffer_size = your desired value
请记住删除属性值之前的“#”。
3) 保存并运行 jupyter notebook。 它现在应该利用设置的内存值。 另外,不要忘记从 jupyter 文件夹中运行 notebook。

或者,您可以使用以下命令简单地运行 Notebook:

 jupyter notebook --NotebookApp.max_buffer_size=your_value

【讨论】:

  • 如何检查笔记本启动时是否加载了正确的配置文件?
  • 不确定从那以后是否发生了变化,但这似乎没有回答似乎不正确。顾名思义,“max_buffer_size”限制了缓冲区,而不是整体内存使用量。它似乎是 HTTP 服务器的缓冲区(龙卷风)。
  • 我们如何知道该放哪个值?我的意思是..你如何计算它是最好的,你应该考虑什么?
  • The Jupyter folder is in your home directory, ~/.jupyter.
【解决方案2】:

对于 Jupyter,您需要考虑 2 个过程:

  1. 本地 HTTP 服务器(基于 Tornado)
  2. 内核进程(通常是本地的,但可以分发,具体取决于您的配置)。

max_buffer_size 是 Tornado Web Server 设置,对应于要缓冲的最大传入数据量,默认为 100MB (104857600)。 (https://www.tornadoweb.org/en/stable/httpserver.html)

基于此PR,此值在笔记本中似乎已增加到 500 MB。

据我所知,Tornado HTTP 服务器不允许定义最大内存,它作为 Python3 进程运行。

对于内核,您应该查看命令定义的内核规范。

一个可以尝试的选项是one

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2020-06-25
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    相关资源
    最近更新 更多