Skip to content

Commit b6d8ea9

Browse files
Add faq section (#281)
Co-authored-by: choldgraf <[email protected]>
1 parent b41bdc7 commit b6d8ea9

File tree

6 files changed

+66
-1
lines changed

6 files changed

+66
-1
lines changed

community-lead/billing/responsiveness.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
(community-lead:billing:responsiveness)=
12
# How to balance cloud responsiveness and cost
23

34
There is a tradeoff between how responsive a hub is and its cost. This is primarily determined by the **size of the nodes** that are used for user sessions.
@@ -34,4 +35,8 @@ Many 2i2c hubs use a **balanced approach**:
3435
- Have the ability to provision smaller nodes for quick scaling during peak times
3536
- Allow specific high-memory users to request larger dedicated nodes
3637

37-
This provides reasonable responsiveness while keeping costs manageable. The 2i2c engineering team works with communities to find the right balance for their usage patterns.
38+
This provides reasonable responsiveness while keeping costs manageable. The 2i2c engineering team works with communities to find the right balance for their usage patterns.
39+
40+
```{seealso}
41+
Users may wonder why their server takes time to start. See [](user:faq:startup-time) for a user-friendly explanation of typical startup times.
42+
```

user/basics/index.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Hub basics
2+
3+
This section covers fundamental information about using your 2i2c JupyterHub.
4+
5+
```{toctree}
6+
:maxdepth: 1
7+
startup
8+
```

user/basics/startup.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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+
```

user/environment/choose.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ We recommend always explicitly specifying a version number in the `TAG` field ra
5151
jovyan@user:~$ echo $JUPYTER_IMAGE
5252
```
5353

54+
```{note}
55+
If the image isn't already cached on a node, it will need to be pulled from the container registry, which can add several minutes to startup time. Learn more about startup times in [](user:faq:startup-time).
56+
```
57+
5458
### The "Dynamic Image Building" option
5559

5660
This allows users to dynamically build an environment image for their Jupyter server, similar to [mybinder.org](https://mybinder.org).

user/get-started.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ For other hubs, you will presented with a *Server Options* page where you can se
1919

2020
![JupyterHub server options](/images/server-options.jpeg)
2121

22+
```{seealso}
23+
Learn more about typical server startup times in [](user:faq:startup-time).
24+
```
25+
2226
It is important to use cloud resources responsibly to maximize efficiency and minimize carbon emissions. Selecting a larger server incurs a larger financial cost, as well as an environmental cost!
2327

2428
Best practices for using resources responsibly include

user/index.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,14 @@ Distribute notebooks and files
5656
Contact 2i2c Support for assistance
5757
:::
5858

59+
:::{grid-item-card} Frequently Asked Questions
60+
:text-align: center
61+
:link: basics/startup
62+
:link-type: doc
63+
64+
Common questions about using your hub
65+
:::
66+
5967
::::
6068

6169
## All User Topics
@@ -64,6 +72,7 @@ Contact 2i2c Support for assistance
6472
:maxdepth: 2
6573
6674
get-started
75+
basics/index
6776
data/index
6877
environment/index
6978
sharing/index

0 commit comments

Comments
 (0)