Gen1 vs Gen2 Resource Classes: Summary

Gen1 and Gen2 are both CircleCI resource class families, but they are not drop-in replacements for each other. Some sizes, platforms, and features differ by executor.

This article puts the main Gen1 vs Gen2 differences in one place for Docker, Linux VM, and Remote Docker.

For full CPU, RAM, and credit rates, see the price list and the configuration reference.

At a glance

Topic Gen1 Gen2
Naming Classic names (small, medium, large, …) Names end in .gen2. Available sizes depend on the executor
Docker sizes (x86) small through 2xlarge+ small.gen2 through 2xlarge+.gen2
Remote Docker sizes (x86) Documented mapping, including smallmedium and medium+large Starts at medium.gen2. small.gen2 is not supported for Remote Docker
Credits / minute See price list Gen2 Docker costs more credits per minute than Gen1. See price list for Linux VM Gen2 rates
CircleCI Cloud Supported Supported
CircleCI Server Supported for documented Gen1 Docker and Linux VM classes Not supported for Gen2 Docker and Gen2 Linux VM
IP Ranges See IP Ranges for executor support Not currently supported
Arm Docker Supported Not supported
Arm Remote Docker Supported Not currently available
Free plan + Docker Resource class access depends on your plan Gen2 Docker requires a paid plan
Gen2 Linux VM / x86 Remote Docker availability Gen1 Linux VM and Gen1 Remote Docker are already available (separate from Gen2) Available for all users

 

Docker executor (x86)

Resource classes

Size Gen1 Gen2
small small small.gen2
medium medium medium.gen2
medium+ medium+ medium+.gen2
large large large.gen2
xlarge xlarge xlarge.gen2
2xlarge 2xlarge 2xlarge.gen2
2xlarge+ 2xlarge+ 2xlarge+.gen2

Availability

Spec Gen1 Gen2
Cloud Yes Yes
Server Yes No
Plan Resource class access depends on your plan Paid plans only

What Gen2 Docker does not include

Item Gen2
Free plans Not supported
Arm Docker Not supported
Remote Docker with small.gen2 Not supported. Smallest Remote Docker size is medium.gen2
IP Ranges Not currently supported
CircleCI Server Not supported

 

Linux VM executor (machine, x86)

Resource classes

Size Gen1 Gen2
medium medium (2 vCPU / 7.5 GB) medium.gen2 (2 vCPU / 8 GiB)
large large (4 vCPU / 15 GB) large.gen2 (4 vCPU / 16 GiB)
xlarge xlarge (8 vCPU / 32 GB) xlarge.gen2 (8 vCPU / 32 GiB)
2xlarge 2xlarge (16 vCPU / 64 GB) 2xlarge.gen2 (16 vCPU / 64 GiB)
2xlarge+ 2xlarge+ (32 vCPU / 64 GB) 2xlarge+.gen2 (32 vCPU / 128 GiB)

Availability

Spec Gen1 Gen2
Cloud Yes Yes
Server Yes No
Disk 150GB 150GB

Both Linux VM tables start at medium / medium.gen2. small.gen2 is a Docker class, not a Linux VM class.

Gen2 Linux VM images

Gen2 machine resource classes on CircleCI Cloud support these Ubuntu LTS versions:

  • Ubuntu 22.04
  • Ubuntu 24.04
  • Ubuntu 26.04

Supported tags include current and edge. Gen2 resource classes are not available on CircleCI Server.

 

Remote Docker (setup_remote_docker)

Remote Docker uses a Linux or Arm machine resource class based on the Docker executor resource class you set. Gen1 and Gen2 use different size lists.

Gen1 mapping (x86)

A Remote Docker environment uses a Linux VM that corresponds to the Docker executor class, with these exceptions:

  • small maps to medium
  • medium+ maps to large
Docker resource class Remote Docker (Linux VM)
small medium
medium medium
medium+ large
large large
xlarge xlarge
2xlarge 2xlarge

Gen2 mapping (x86)

Docker resource class Remote Docker (Linux VM)
medium.gen2 medium.gen2
large.gen2 large.gen2
xlarge.gen2 xlarge.gen2
2xlarge.gen2 2xlarge.gen2
2xlarge+.gen2 2xlarge+.gen2

Important differences:

  • small.gen2 is available for plain Docker Gen2, but it is not supported for Remote Docker. The smallest Gen2 Remote Docker size is medium.gen2.
  • medium+.gen2 is available for plain Docker Gen2, but it is not listed in the Gen2 Remote Docker mapping table.
  • Gen2 does not currently support IP Ranges.
  • Gen2 resource classes are not currently available for Arm-based Remote Docker.

Arm Remote Docker

Gen1 Gen2
Classes arm.medium, arm.large, arm.xlarge, arm.2xlarge Not currently available

Remote Docker version pins

Remote Docker version tags are listed in the Remote Docker docs, including aliases such as default, edge, and previous, plus version tags such as docker29, docker27, and docker26. For Gen2, the changelog also documents pinning with docker28 and docker29. Check those pages for the current tag list.

Example from the Gen2 changelog:

resource_class: medium.gen2
steps:
  - setup_remote_docker:
      version: docker28

 

Feature support matrix

Feature Gen1 Gen2
Plain Docker (x86) Yes Yes, paid plans
Remote Docker (x86) Yes, with smallmedium and medium+large mapping Yes, from medium.gen2 through 2xlarge+.gen2. small.gen2 not supported. medium+.gen2 not listed
Linux VM (machine, x86) Yes Yes, from medium.gen2 through 2xlarge+.gen2
IP Ranges See IP Ranges Not currently supported
Arm Docker Yes Not supported
Arm Remote Docker Yes Not currently available
CircleCI Server Yes for documented Gen1 Docker and Linux VM classes Not supported for Gen2 Docker and Gen2 Linux VM
Free plan Docker Resource class access depends on your plan Gen2 Docker not supported on Free. Paid plan required

 

Performance and credits

Product Gen2 performance Credits
Docker Gen2 Nearly 1.4x faster than Gen1 Higher credits/min than Gen1
Linux VM / (x86) Remote Docker Gen2 Up to 180% faster for multi-threaded workloads See Gen2 rows on the price list

Same size names can mean different RAM across executors. Example: Docker medium.gen2 is 2 vCPU / 4GB. Linux VM medium.gen2 is 2 vCPU / 8 GiB.

Additional resources

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.