You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署于AWS EC2的JupyterHub频繁提示服务器未运行故障咨询

JupyterHub频繁提示服务未运行排查方案

已知基础信息

  • 部署环境:AWS EC2实例,操作系统为Ubuntu 18.04.6 LTS,实例本身运行正常,VNC访问无异常
  • 故障现象:使用间隔不足10分钟即弹出报错"Your server at ... is not running. Would you like to restart it?",notebook编辑、终端跑脚本场景均会触发,跨浏览器、跨客户端操作系统均可复现
  • 当前Jupyter组件版本:
pip freeze | grep jupyter
jupyter-client==7.0.6
jupyter-core==4.9.1
jupyter-resource-usage==0.6.0
jupyter-server==1.11.2
jupyter-telemetry==0.1.0
jupyterhub==1.5.0
jupyterlab==3.2.2
jupyterlab-pygments==0.1.2
jupyterlab-server==2.8.2
jupyterlab-widgets==1.0.2
nteract-on-jupyter==2.1.3

按优先级排查解决

  • 先定位单用户进程被终止的直接原因
    先查两类日志,不要上来就改配置:

    • 若用systemd管理JupyterHub,执行命令查看主服务日志:journalctl -u jupyterhub -f --since "1 hour ago",重点找单用户进程退出的记录,标记的退出信号是什么
    • 查看对应用户的单用户notebook日志,默认路径为/var/log/jupyterhub/<你的用户名>/,找OOM、进程被强制杀死的相关记录

    这是该故障最高发的原因:EC2实例规格内存不足时,系统OOM Killer会优先杀掉内存占用高的Jupyter单用户进程,此时系统本身剩余内存足够支撑VNC、SSH等基础连接,就会出现实例正常但Jupyter服务掉的现象。如果日志确认是OOM导致,要么升EC2实例内存规格,要么给单用户服务配置合理的内存上限,避免单用户占满整机内存触发全局OOM。

  • 核对超时配置,排除自动关停规则
    打开JupyterHub配置文件jupyterhub_config.py,检查以下参数值,若参数值小于600秒(10分钟)就会触发自动停服:

    # Hub侧检测到单用户服务无活动的关停时间
    c.JupyterHub.services_idle_timeout
    # Notebook侧无活动自动关停时间
    c.NotebookApp.shutdown_no_activity_timeout
    # 空闲内核自动回收时间
    c.MappingKernelManager.cull_idle_timeout
    

    把以上参数调整为1800秒以上的合理值,执行systemctl restart jupyterhub重启服务生效。
    同时检查系统层自动清理规则:打开/etc/systemd/logind.conf,确认KillUserProcesses参数值为no,如果被设为yes,用户会话临时断开时系统会直接杀掉该用户所有关联进程,包括Jupyter服务,修改后执行systemctl restart systemd-logind生效。另外检查root crontab规则,确认没有配置定时清理长运行用户进程的任务。

  • 排查中间网络层的连接超时问题
    如果JupyterHub前置搭了Nginx反向代理,或者用了AWS的ALB/CLB负载均衡,先绕过中间层,直接用EC2公网IP+JupyterHub默认端口8000访问,测试10分钟以上故障是否复现:

    • 如果绕过之后故障消失,说明是中间层超时切断了长连接:Nginx需要把proxy_read_timeout、proxy_send_timeout调整到3600秒以上,同时开启websocket代理支持;AWS负载均衡需要把空闲超时时间从默认60秒调整到1800秒以上。
  • 修复已知版本兼容bug
    当前安装的jupyter-client==7.0.6存在已知的心跳线程异常问题,和JupyterHub 1.5.0版本搭配时会出现通信断连,导致Hub误判单用户服务下线,直接升级到兼容稳定版即可:

    pip install --upgrade jupyter-client==7.3.5 jupyter-server==1.13.5
    

    升级完成后重启JupyterHub,清理浏览器缓存后重新访问测试。

内容的提问来源于stack exchange,提问作者Thomas R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:30:38