清理闲置笔记本服务器#
闲置清理器会自动关闭用户笔记本服务器,当它们在一定时间内未被使用时,以减少 JupyterHub 上的总资源使用量。
笔记本服务器在内部监控活动,并在特定时间间隔(活动间隔)通知 JupyterHub 最近的活动。如果 JupyterHub 在一段时间(闲置超时)后没有收到任何活动的通知,则该服务器被认为是 *非活动(闲置)* 的,并将被清理(关闭)。
该 闲置清理器 是一个 JupyterHub 服务,默认情况下在 TLJH 中安装并启用。它可以使用 tljh-config 进行配置。对于高级用例,例如清除旧用户数据,闲置清理器配置可以通过自定义 jupyterhub_config.py 片段 扩展到 tljh-config 选项之外。
默认设置#
默认情况下,JupyterHub 每 60 秒 ping 一次用户笔记本服务器以检查其状态。发现闲置超过 10 分钟的服务器将被清理。
services.cull.every = 60
services.cull.timeout = 600
由于服务器没有设置最大年龄,因此活动服务器不会被关闭,无论它运行了多长时间。
services.cull.max_age = 0
如果在清理过程之后,有用户没有活动的笔记本服务器,默认情况下,这些用户不会与他们的笔记本一起被清理,并将继续存在。
services.cull.users = False
如果使用命名服务器,它们在被清理后不会被删除。
services.cull.remove_named_servers = False
配置闲置清理器#
可用的配置选项是
闲置超时#
闲置超时是服务器在被清理之前可以处于非活动状态的最长时间(以秒为单位)。超时可以使用以下方法配置
sudo tljh-config set services.cull.timeout <max-idle-sec-before-server-is-culled>
sudo tljh-config reload
闲置检查间隔#
闲置检查间隔表示 Hub 检查是否有闲置服务器需要清理的频率(以秒为单位)。它可以使用以下方法配置
sudo tljh-config set services.cull.every <number-of-sec-this-check-is-done>
sudo tljh-config reload
最大年龄#
最大年龄设置服务器应运行的时间(以秒为单位)。超过最大年龄的服务器将被清理,即使它们处于活动状态。最大年龄为 0 将停用此选项。最大年龄可以使用以下方法配置
sudo tljh-config set services.cull.max_age <server-max-age>
sudo tljh-config reload
删除命名服务器#
在命名服务器关闭后删除它们。仅适用于在中心安装中启用了命名服务器的情况
sudo tljh-config set services.cull.remove_named_servers True
sudo tljh-config reload
用户清理#
除了服务器之外,还可以清理用户。这通常适用于临时用户案例,例如 *tmpnb*。用户清理可以使用以下命令激活
sudo tljh-config set services.cull.users True
sudo tljh-config reload
并发性#
同时删除大量用户可能会减慢 Hub 的速度。可以配置对 Hub 发出的并发请求数量,使用以下方法
sudo tljh-config set services.cull.concurrency <number-of-concurrent-hub-requests>
sudo tljh-config reload
由于 TLJH 用于少量用户,因此可能需要修改并发限制的情况应该很少见。
禁用闲置清理器#
闲置清理服务默认情况下处于启用状态。要禁用它,请使用以下命令
sudo tljh-config set services.cull.enabled False
sudo tljh-config reload