推荐将自动保存间隔设为30–60秒(即30000–60000毫秒),避免设为5秒引发页面卡顿;需通过修改配置文件~/.jupyter/jupyter_notebook_config.py中c.notebookapp.autosave_interval参数实现永久生效,重启服务后生效。

默认 120 秒太危险,建议设为 30–60 秒;但别设成 5 秒,会卡死页面。
修改 c.NotebookApp.autosave_interval 是最稳的方式
这个参数控制前端 JavaScript 定时器的触发间隔,单位是毫秒,写进配置文件后永久生效。它不依赖插件、不改动内核,所有 Jupyter 版本(包括 JupyterLab)都认这个设置。
- 先生成配置(如果还没建过):
jupyter notebook --generate-config - 编辑文件:
~/.jupyter/jupyter_notebook_config.py - 加这一行(推荐 60 秒):
c.NotebookApp.autosave_interval = 60000 - 重启 Jupyter 服务才生效 —— 不是刷新网页就行
%autosave 魔法命令只对当前 Notebook 临时生效
在任意 cell 里运行 %autosave 30,会把当前打开的 Notebook 设为每 30 秒保存一次。但它只作用于当前 session,关掉浏览器或重启 kernel 就失效。
- 支持的值是秒数,不是毫秒:
%autosave 10表示 10 秒 - 设太小(比如
%autosave 1)会导致频繁写入大文件,页面明显卡顿 - 它不改后端行为,只是前端重置定时器 —— 如果网络断了,照样存不进去
别信“自动保存 = 实时落盘”
自动保存本质是前端发请求、后端写磁盘。中间任何一环断开(WebSocket 断连、磁盘满、权限不足),都会静默失败 —— 页面可能还显示 “Autosaved: 14:22”,但文件根本没更新。
- 检查是否真写成功:用命令行看文件修改时间:
stat your_notebook.ipynb - 别只靠右上角提示,尤其在远程服务器或 Docker 容器里,I/O 延迟更明显
- 大 Notebook(>10MB)每次保存都是全量 JSON 序列化,60 秒比 120 秒多一次 I/O,但比 10 秒少 11 次,这个权衡很实在
配合 c.FileCheckpoints.checkpoint_dir 多一道保险
即使自动保存失败,checkpoint 能帮你找回最近一次成功保存前的状态。它默认存在 ~/.jupyter/checkpoints/,但路径可以自定义。
- 加这行到配置文件:
c.FileCheckpoints.checkpoint_dir = '/path/to/your/checkpoints' - 确保目标目录有写权限,否则 checkpoint 创建失败也不报错
- 注意:checkpoint 不是 Git,它只保留一份快照,且不会自动清理旧文件
真正容易被忽略的是:自动保存依赖浏览器持续运行。标签页后台休眠、系统休眠、Chrome 的内存限制策略,都可能让定时器停摆 —— 所以再短的间隔也救不了被强制关闭的页面。动手改配置前,先确认你用的是最新稳定版 Jupyter,老版本(autosave_interval 支持不一致。











