resource_class configuration option has multiple uses: specifying compute resource size, optimizing executors, configuring self-hosted runners, and specifying an execution evironment.
The most common usage is to specify CPU and RAM requirements for a job by configuring the
resource_class key for an executor.
docker: # use the Docker executor
- image: cimg/base:2022.09 # specify a Docker image
resource_class: xlarge # specify a resource class
- run: echo "Hello World"
Executor resource classes are specified by size, for example,
medium. Each size corresponds to specific CPU and RAM requirements.
When using CircleCI’s self-hosted runners, use the
resource_class key in your project configuration to specify which runner to use for a job. Self-hosted runner resource classes are assigned and configured during the installation process.
- run: echo "Hello runner"
Another use of the
resource_class key is to specify an execution environment. For example, Arm is a resource class option when using the
- run: uname -a
- run: echo "Hello, Arm!"
For config examples showing how to use the
resource_class key to specify CPU and RAM size for an execution environment, see the following sections of the configuration reference page:
Default resource class
resource_class is not explicitly declared for a job, CircleCI will use a default resource class size. Defaults are subject to change. It is best practice to specify a resource class, rather than relying on a default.
Resource class usage tools
Information about the resource classes used in your jobs can be found in the web app, or by using the API. See the sections below for details.
Find the resource class used for a job
The job details page in the web app shows the resource class used for a job.
Alternatively, use the "Get job details" endpoint to return information about a job, including the resource class used. For usage steps see the get job details how-to guide.
View resource usage per job
To view the compute resource usage for the duration of a job in the CircleCI web app:
Select Dashboard from the sidebar menu
Use the dropdown menus to select a project, and a branch
Expand your workflow ( )
Select a job by clicking on 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. You can also access resource class Insights.
Resource class Insights
Resource class Insights let you track resource utilization for your jobs. You can inspect and use this information to update your executors based on historical trends and job requirements.
To find resource class Insights:
Select Insights from the web app sidebar.
The dashboard shows Insights at the project level. To find resource class Insights you need to drill down to the job level:
Select a project from the drop down.
Select a workflow from the list.
Select the Jobs tab.
Expand a job to view the resource class Insights.Figure 2. Resource class Insights