|
| 1 | +(user:faq:startup-time)= |
| 2 | +# What is a typical hub start-up time? |
| 3 | + |
| 4 | +User server startup time ranges from **a few seconds** to **10 minutes**, depending on two main factors: |
| 5 | + |
| 6 | +## Factor 1: Resources available on a node |
| 7 | + |
| 8 | +When a server starts, it requests resources from a node. |
| 9 | + |
| 10 | +**If a node already exists with sufficient resources:** |
| 11 | +- Server creation takes only a few seconds |
| 12 | + |
| 13 | +**If a suitable node doesn't exist or lacks resources:** |
| 14 | +- The autoscaler creates a new node, which takes 2 to 10+ minutes |
| 15 | +- Node creation time depends on the cloud provider and machine type (larger machines like GPUs often take longer) |
| 16 | +- If startup exceeds 10 minutes, you'll see a `TimeoutError` and need to restart your server to use the newly created node |
| 17 | +- This timeout is uncommon but can occur with certain machine types |
| 18 | + |
| 19 | + |
| 20 | +## Factor 2: Environment image availability |
| 21 | + |
| 22 | +When a user server starts, JupyterHub then finds and loads the **environment image**, which contains all the tools available to the user. |
| 23 | + |
| 24 | +**If the image is already on the node:** |
| 25 | +- Server startup is much faster since no download is needed |
| 26 | + |
| 27 | +**If the environment image isn't on the node:** |
| 28 | +- The image must be pulled from the container registry |
| 29 | +- This takes a few minutes depending on image size and network conditions |
| 30 | +- Image pulling always happens if a new node was just created |
| 31 | + |
| 32 | + |
| 33 | +```{important} |
| 34 | +Startup time can be reduced through strategies like maintaining minimum node counts or pre-pulling images, but these increase costs. Learn more about balancing responsiveness and cost in [](community-lead:billing:responsiveness). |
| 35 | +``` |
0 commit comments