ArcGIS Notebooks consume resources on the machines running in your ArcGIS Notebook Server site. Because these resources are limited, ArcGIS Notebook Server has administrative settings to restrict their usage.
ArcGIS Notebook Server uses containers - virtualized operating systems - to isolate each notebook author's environment. Containers allow each author to use a subset of your server resources without their work or resource use interfering with others. These containers are allocated and maintained by the Docker Engine running on your machine.
Each notebook author is allocated one container, which is launched when they open their first notebook. Only they can work in their container, and the computer resources they use in their container are isolated from other containers.
When the container launches, its virtual operating system and settings are configured through a container image. This will be one of the two container images you received from Esri.
Included with this container image is a notebook runtime - a collection of Python modules and dependencies. The contents of the runtime will be available in each notebook that runs in the container.
The container image applied depends on the notebook author's privileges in the portal:
- Authors who have only been granted the Create and Edit Notebooks privilege will have their container loaded with the Standard container image. The Standard notebook runtime for their notebooks includes the ArcGIS API for Python and several hundred third-party Python libraries.
- Authors who have also been granted the Advanced Notebook privilege will have their container loaded with the Advanced container image. The default notebook runtime for their notebooks is the Advanced runtime, which includes all modules from the Standard runtime along with ArcPy and its related libraries. They have the option to specify an individual notebook's runtime, and can use either the Standard or the Advanced runtime in their notebooks.
By default, a container is allocated a certain amount of RAM and a certain number of CPU core shares. These default resource limits are determined by the runtime being run by the container, as follows:
- The Standard runtime allots 1 CPU core and 4 GB of RAM per container.
- The Advanced runtime allots 2 CPU cores and 6 GB of RAM per container.
As an ArcGIS Notebook Server administrator, monitor the number of notebook authors working in your site and which runtime each is using. Depending on these factors, you may need or want to change the resource limits set for ArcGIS Notebook Server.
Configure resource limits for your ArcGIS Notebook Server site
In Windows deployments of ArcGIS Notebook Server, notebook containers are hosted on the machine within a Linux virtual machine (MobyLinuxVM) running in the Microsoft Hyper-V virtualization server. This Linux virtual machine governs the resource limits available for use by the containers.
Accordingly, you can use the Docker Desktop settings panel to limit the resources available to ArcGIS Notebook Server and the containers running in your server site.
- Right-click the Docker icon in your Windows system tray and navigate to Settings > Advanced.
- You will see three sliders to change the following settings:
- CPUs: The number of CPU cores available to containers on your machine.
- Memory: The amount of memory available to containers on your machine.
- Swap: The amount of disk space that containers can use for memory if the above limit is reached.
- When you are satisfied with the resource limits you've set, click Apply.
Update the resources used by each runtime
As an administrator, you can update the maximum CPU and memory that is available per container by changing the resources that each notebook runtime uses by default. If there are multiple users authoring notebooks concurrently, you can monitor your site's usage and adjust these settings as necessary using the ArcGIS Notebook Server Administrator Directory.
- Sign in to the ArcGIS Notebook Server Administrator Directory. The URL is formatted https://notebookserver.domain.com:11443/arcgis/admin.
- Browse to notebooks > runtimes.
- Select the runtime (Standard or Advanced, if applicable) with the resource limits you want to update.
- Update the maxCpu (in cores) and maxMemory (in GB) values for the runtime.
- Click Update Runtime to confirm.