Jupyter Notebook新会话无加载占用11G内存,疑似内存泄漏如何解决?
Jupyter Notebook空白会话异常内存占用排查修复方案
先排查统计方式是否有误
你调用的psutil.virtual_memory()返回的是整个操作系统的全局内存状态,其中used字段是系统所有进程总共占用的内存,不是当前Jupyter内核的内存占用。
你可以运行以下代码统计当前Jupyter内核的实际内存占用:
import os import psutil # 获取当前内核进程ID kernel_pid = os.getpid() p = psutil.Process(kernel_pid) # 换算为GB单位输出 rss_gb = p.memory_info().rss / 1024 ** 3 print(f"当前Jupyter内核实际占用内存:{rss_gb:.2f} GB")
空白Jupyter内核的正常占用通常在0.1~0.5GB区间,如果统计结果确实远高于这个范围,再按照以下步骤排查。
异常占用排查步骤
- 检查内核启动预加载脚本
打开IPython启动目录:~/.ipython/profile_default/startup/(Windows系统为C:\Users\你的用户名\.ipython\profile_default\startup\),该目录下所有.py文件都会在内核启动时自动执行,常见的预加载大模型、大数据集的代码都会放在这里,直接移除或注释对应代码即可。 - 检查Python环境启动脚本
查看当前Python环境下的sitecustomize.py和usercustomize.py文件,这两个文件会在Python解释器启动时自动运行,部分自定义环境会在里面加入预加载逻辑,排查是否有占用高内存的代码。 - 检查Jupyter扩展插件
运行以下命令查看已安装的扩展:
部分资源消耗较高的扩展(如大数据预览、实时性能监控类扩展)会在内核启动时占用大量内存,可逐一禁用验证内存占用情况。# Notebook 扩展 jupyter nbextension list # Lab 扩展 jupyter labextension list - 检查内核配置文件
查看~/.ipython/profile_default/ipython_kernel_config.py文件,确认是否有配置预加载模块、分配内存上限的相关参数异常。
通用修复方案
如果排查不出具体原因,可以直接重置Jupyter相关配置:
- 运行
jupyter --config-dir获取配置文件目录,备份后删除整个目录 - 卸载当前环境的Jupyter相关包后重新安装纯净版:
pip uninstall -y jupyter jupyter_core jupyter_client ipython ipykernel notebook pip install jupyter notebook
- 重启Jupyter后重新验证内存占用即可。
内容的提问来源于stack exchange,提问作者cocojim
相关产品推荐
相关产品推荐

