Skip to content

As a Jupyter hub administrator, I want to configure and enforce resource throttling (CPU, memory, and request rate) on a per-user basis across individual Jupyter hubs, So that I can prevent any single user from monopolizing shared resources #17

@AAshGray

Description

@AAshGray

Acceptance Criteria

  • GIVEN a Jupyter hub administrator needs to control resource usage WHEN throttling is configured for a hub THEN CPU, memory, network, and request rate limits can be set per user or user group independently on each hub.
  • GIVEN a user exceeds their configured throttle limit WHEN the limit is breached THEN the user receives a clear in-app notification and a descriptive error message explaining the restriction.
  • GIVEN throttling rules are defined for a hub WHEN the hub or user server restarts THEN all throttling configurations are automatically reloaded and enforced without manual intervention.
  • GIVEN multiple hubs are running WHEN throttling is configured on one hub THEN the configuration has no effect on any other hub, ensuring per-hub isolation.

Technical Tasks

    • Research how to implement CPU and memory throttling for user servers in JupyterHub
    • Define appropriate throttling limits for CPU, memory, and network traffic for different user roles (Instructor/student)
    • Implement CPU and memory limits on users according to specified configurations
    • Determine how to show the user a throttle warning
    • Implement the throttle warning when a user excceeds limitations
    • Ensure throttling rules persist across hub restarts and are correctly re-applied when a user restarts their server
    • Test throttling using testing scripts to ensure that limits are being properly enforced and do not over-limit users under normal load

Story points: 13

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions