Resource class overview
On This Page
resource_class configuration option has multiple uses. The most common usage is to specify CPU and RAM requirements for a job by configuring the
resource_class key for an executor.
jobs: my-job: docker: # use the Docker executor - image: cimg/base:2022.09 # specify a Docker image resource_class: xlarge # specify a resource class steps: - run: echo "Hello World"
Executor resource classes are specified by size, for example,
medium. Each size corresponds to specific CPU and RAM requirements. For a full list of available resource class options, see the configuration reference. The resource class product page provides information on credit usage per resource class, and resource class availability for each plan type.
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.
jobs: my-job: machine: true resource_class: <my-namespace>/<my-runner> steps: - 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
jobs: my-job: machine: image: ubuntu-2004:202101-01 resource_class: arm.medium steps: - 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:
To get started setting up a self-hosted runner, see the Installing self-hosted runners with the web app 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.
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
Help make this document better
This guide, as well as the rest of our docs, are open source and available on GitHub. We welcome your contributions.
- Suggest an edit to this page (please read the contributing guidefirst).
- To report a problem in the documentation, or to submit feedback and comments, please open an issue on GitHub.
- CircleCI is always seeking ways to improve your experience with our platform. If you would like to share feedback, please join our research community.
Our support engineers are available to help with service issues, billing, or account related questions, and can help troubleshoot build configurations. Contact our support engineers by opening a ticket.
You can also visit our support site to find support articles, community forums, and training resources.
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.