Workbench on Kubernetes - Introduction

This page only applies to users with access to a Workbench installation running on Kubernetes.

Instance Types

The k8s sessions run on specific instance types which are preselected on the admin side. The instance type selection matters to ensure that Workbench is not limited by instance type capabilities. For example, when using elastic file system (EFS) on AWS, it is important to make use of network-optimized instances to best support EFS throughput capabilities.

In general, memory-optimized instances are preferred as their CPU/Memory ratio favors memory, which is usually the more important resource for Workbench sessions. The following instance types are currently available to the autoscaler:

Instance Type CPU Memory Costs per hour
r5n.large 2 16 $0.036 - 0.037
r5n.xlarge 4 32 $0.074 - $0.099
r5n.2xlarge 8 64 $0.2 - $0.4
r5n.4xlarge 16 128 $0.36 - $0.95
———— —– ————–
r6i.large 2 16 $0.0383 - $0.0390
r6i.xlarge 4 32 $0.0811 - $0.105
r6i.2xlarge 8 64 $0.01624 - $0.3526
r6i.4xlarge 16 128 $0.336 - $0.3747

More instance types or families can be added if needed.

Resource Requests

The default session resources aim to represent a reasonable default for new sessions. Depending on the need of your current task, you might want to increase the respective values.

If you’re session aims to use more memory than it has been assigned to, the session will output a message like

Error: cannot allocate vector of size <some size> Gb

If this ever happens to you during certain (memory)-heavy tasks, consider increasing the session memory and try again.

CPU resources are often shared between multiple users on a machine (as the CPU is idle most of the time anyway). Memory requests are blocked for the individual users to prevent memory overflow of the underlying machine.