Using the Arm VM execution environment
You can access the Arm VM (virtual machine) execution environment for a job by using the machine executor and specifying a Linux virtual machine image that includes Arm resources. You then specify an Arm resource class.
-
Cloud
-
Server
# .circleci/config.yml
jobs:
my-job:
machine:
image: ubuntu-2404:current
resource_class: arm.medium
steps:
- run: uname -a
- run: echo "Hello, Arm!"
# .circleci/config.yml
jobs:
my-job:
machine:
image: arm-default
resource_class: arm.medium
steps:
- run: uname -a
- run: echo "Hello, Arm!"
Available resource classes
The following Arm resources are available as part of the machine executor:
Gen1
| Class | vCPUs | RAM | Disk Size | Cloud | Server |
|---|---|---|---|---|---|
|
2 |
8GB |
100 GB |
Yes |
Yes |
|
4 |
16GB |
100 GB |
Yes |
Yes |
|
8 |
32GB |
100 GB |
Yes |
Yes |
|
16 |
64GB |
100 GB |
Yes |
Yes |
| Using server? Check with your systems administrator whether you have access to the Arm execution environment. |
Gen2 Beta
| Arm gen2 for the machine executor is currently in beta. Performance and pricing are tentative and may change when this feature becomes generally available. |
| Class | vCPUs | RAM | Disk Size | Cloud | Server |
|---|---|---|---|---|---|
|
2 |
8GB |
100 GB |
Yes |
No |
|
4 |
16GB |
100 GB |
Yes |
No |
|
8 |
32GB |
100 GB |
Yes |
No |
|
16 |
64GB |
100 GB |
Yes |
No |
For pricing and plans information, see the resource class pricing overview.
View resource usage
To view the compute resource usage for the duration of a job in the CircleCI web app:
-
In the CircleCI web app, select your org from the org cards on your user homepage.
-
Select Pipelines from the sidebar and locate your pipeline from the list. You can use the project, branch, date, and status search options to help.
-
Select the job you want to access by selecting the job name.
-
Select the Resources tab to view CPU and RAM usage for the duration of the job.
You can use these insights to decide whether to make changes to the job’s configured resource class.
Arm VM generations
Gen2 Beta
Resource classes running on gen2 infrastructure offer significant performance and cost improvements over their gen1 equivalents.
Performance improvements
Using more modern compute, gen2 instances deliver up to 73% faster performance compared to gen1 equivalents, based on benchmarks measured during the beta period. Actual performance gains depend on your specific workloads, and this figure may change when Arm gen2 becomes generally available.
Using gen2
To use a gen2 resource class, specify an arm.large.gen2 or equivalent class in your job configuration:
# .circleci/config.yml
jobs:
my-job:
machine:
image: ubuntu-2404:current
resource_class: arm.large.gen2
steps:
- run: uname -a
- run: echo "Hello, Arm!"
| Gen2 resource classes for the Arm VM execution environment are available on CircleCI Cloud only. |
Images with Arm support
Arm resources are accessible by using the machine executor when using one of the following images:
Gen1
Ubuntu 20.04 - focal
-
ubuntu-2004:current- most recent, recommended for all users. -
ubuntu-2004:2023.07.1 -
ubuntu-2004:2023.04.2 -
ubuntu-2004:2023.02.1 -
ubuntu-2004:2022.10.1 -
ubuntu-2004:2022.07.1 -
ubuntu-2004:2022.04.1 -
ubuntu-2004:202201-02 -
ubuntu-2004:202201-01 -
ubuntu-2004:202111-02 -
ubuntu-2004:202111-01 -
ubuntu-2004:202107-01 -
ubuntu-2004:202104-01 -
ubuntu-2004:202101-01 -
ubuntu-2004:202011-01- deprecated as of Feb 3, 2021.
Ubuntu 22.04 - jammy
-
ubuntu-2204:current- most recent, recommended for all users. -
ubuntu-2204:2023.07.1 -
ubuntu-2204:2023.04.2 -
ubuntu-2204:2023.02.1 -
ubuntu-2204:2022.10.2 -
ubuntu-2204:2022.07.2
Gen2 Beta
Arm gen2 resource classes are only supported on the following images and tags:
-
ubuntu-2404:current -
ubuntu-2404:edge -
ubuntu-2604:current -
ubuntu-2604:edge
For a full list of machine executor images, see the CircleCI Developer Hub. And for announcements about image updates, see CircleCI Discuss.
Limitations
-
CircleCI supports only 64-bit
arm64architectures. -
In CircleCI Server, Arm resources are only available when using the EC2 provider for VM service or machine provisioner. No Arm instances are available in GCP.
-
If you run into issues with orbs, or if there is software you require that is not available in the image, submit a feature request.
Arm on Docker
For further information on using Arm with the Docker execution environment, see the Using the Docker Execution Environment page.