如何增加 Jupyter notebook 内存限制?

Daw*_*wyi 28 python memory numpy ipython jupyter-notebook

我在 Windows 10 上使用带有 Python3 的 jupyter notebook。我的电脑有 8GB 内存,至少有 4GB 的内存是免费的。

但是当我想用这个命令制作一个大小为 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 时出错了吗?

Div*_*hik 31

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

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


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

 jupyter notebook --NotebookApp.max_buffer_size=your_value

  • 如何检查笔记本启动时是否加载了正确的配置文件? (4认同)
  • 我们如何知道要放置哪个值?我的意思是..你如何计算它是最好的以及你应该考虑哪些事情? (4认同)
  • 不确定此后是否发生了变化,但这似乎并没有回答似乎不正确。顾名思义,“max_buffer_size”限制缓冲区,而不是总体内存使用量。它似乎是 HTTP 服务器的缓冲区(龙卷风)。 (3认同)
  • `Jupyter 文件夹位于您的主目录 ~/.jupyter 中。` (2认同)
  • 这些信息的形式是字节、千字节、兆字节、千兆字节,还是看起来像 100 MB 或 10 GB? (2认同)

gog*_*sca 8

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

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

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

根据此PR,该值在 Notebook 中似乎已增加到 500 MB。

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

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

可以尝试的一个选择是这个