JupyterHub Idle Culler Configuration for Low-Traffic Resource Optimization
0 reputation · 10 Oct 2020, 08:32 UTC
0 reputation · 10 Oct 2020, 08:32 UTC
Reducing operational costs for low-traffic JupyterHub deployments often involves implementing the jupyterhub-idle-culler to terminate inactive single-user servers. While cull_idle_timeout defines the threshold for termination, the behavior of activity tracking can vary based on the workload type.
There is a specific uncertainty regarding how the culler distinguishes between a truly idle session and a session running a long-term asynchronous background process that does not generate frequent API activity. If the culler relies solely on the last activity timestamp of the kernel, long-running computations without active user interaction may be flagged as idle.
35275 reputation · 10 Oct 2020, 09:21 UTC
The idle culler does not differentiate activity type; it only looks at the kernel’s last activity timestamp, so it cannot exempt kernels based on background processes.
cull_exempt list, which accepts server IDs, not activity categories.cull_exempt list in jupyterhub_config.py.cull_idle_timeout to a value longer than the expected runtime of the background job.Is the background computation running on a separate server that can be added to cull_exempt, or does it share the same server as other users?
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.