TLJH jupyterlab多人使用遭遇无法服务问题

本学期的一门课程,学生有接近100人,在使用Jupyterlab过程中,并发人数过多后就会导致其遇到无法服务问题,具体表征就是jupyter的kernel一直显示connecting,但始终无法连接。

第一次遇到此问题后,将班级分组、服务器硬件升级(内存从64G到320G),最近一次上课在练习wordcloud时发现又出现此问题,同时注意到,在出现问题时,服务器内存和cpu并没有占满,因此可以排除硬件问题。

网上搜索后,发现也有人遇到同样的问题,如:

TLJH Jupyterhub randomly times out

Performance, large machines and few users: connection issues #486

但这几个讨论最终都没有找到问题,但其中提到使用journalctl查看log信息,于是根据出现问题的时间查看其中出现的错误。

sudo journalctl -r --no-pager > tljh.log

找到第一个的错误是发生在traefik中,提示:502 Bad Gateway,但搜索一下,发现这个问题应该不是traefik导致的。

然后找到第二个错误:

zmq.error.ZMQError: Too many open files

看起来这个错误就很像是我们需要解决的问题。搜索了一下,发现这个问题是服务器默认限制了用户能同时打开的文件数,默认是1024。可以用下面这个命令测试:

ulimit -n

然后将在系统中将此参数调大至131072,在shell中测试发现此命令已经生效。但到了jupyterlab的terminal中测试此命令,突然发现有问题了,其结果一直是4096,而不论系统中将此值如何调大。

继续google之,发现此问题是有这个代码导致的:

https://github.com/jupyter/notebook/pull/5075/commits/e46a344fa68b8b33bed1d9962221365893c5d881

在此代码逻辑中,若系统的hard limit>4096,则设置min_open_files_limit为4096,但现在遇到的问题则有明显表示此值已经过小了,因此到这一步的处理方法就是直接修改tljh的代码,将这一行的代码修改为409600。

服务器对应的文件为:/opt/tljh/user/lib/python3.9/site-packages/notebook/notebookapp.py


已发布

分类

, ,

来自

标签:

评论

《 “TLJH jupyterlab多人使用遭遇无法服务问题” 》 有 6 条评论

  1. wlx 的头像
    wlx

    jupyterlab 4.1版本:
    修改 /opt/tljh/user/lib/python3.9/site-packages/jupyter_server/serverapp.py

  2. buy viagra

    buy viagra

  3. diflucan medication

    diflucan medication

  4. doxycycline for uti

    doxycycline for uti

  5. antibiotics online purchase

    antibiotics online purchase

  6. lamotrigine

    lamotrigine

回复 diflucan medication 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注