Resource Class for Remote_Docker and Machine executor
complete
K
Kyle T
Currently for building Docker images there are no options to increase resource_class as the machine executor and remote docker environment share the same specs at 2 cores and 8Gb of ram.This is a request to extend the resource class feature to all executors. (MacOS has a current post already for this issue).
CCI-I-707
A
Austin Brown
+1 it's crazy painful to build optimized, complex, rust applications using remote_docker due to resource constraints.
Merged in a post:
Support resource_class for setup_remote_docker
S
Sam Horton
Currently, with the
resource_class
option for a Job, the amount of RAM a Job has available can be configured according to the following table. This is one of the best parts of CircleCI, and a key reason we transitioned to this platform.Class
vCPUs
RAM
small
1
2GB
medium (default)
2
4GB
medium+
3
6GB
large
4
8GB
xlarge
8
16GB
2XL
16
32GB
2XL+
20
40GB
1GPU
16
122GiB
2GPU
32
244GiB
4GPU
64
488GiB
However, when using a Docker Executor, in order to build a Docker image, the
setup_remote_docker
command must be used before running any Docker commands. When researching why our Docker image builds were running slower than expected, I discovered that the remote Docker runtime does not use the resource_class
definition from the Job in which the command was triggered. I also learned that there is no way to configure more resources for it. At the time of writing the only resource type available is the following.CPUs
Processor
RAM
HD
2
Intel(R) Xeon(R) @ 2.3GHz
8GB
100GB
While I don't expect to have as diverse a list of options like with
resource_class
, it would be nice to be able to configure the resources for this remote environment. At a minimum, it would be nice to double the amount of RAM available.Thank you!
CCI-I-1169
Merged in a post:
Increase resource for `machine`
I
Isaac
Support for resource class for the machine executor to use more than 2 CPUOur tests can be parallelized per core, so we think this would significantly speed up our test runs. We can't use the Docker executor because of networking requirements between the containers in our stack.
CCI-I-686
Liya Ai
Hi everyone! We now have machine resources in sizes XL & 2XL - if you are looking for more CPU or larger amounts of memory for building Docker images consider using the larger resources. https://circleci.com/docs/2.0/configuration-reference/#machine-executor-linux
A
Adam Dry
Thanks Alexey, I've migrated from docker inside docker (where remote-docker had to be used) to a machine executor with the large resource class.
I can confirm my spin up is slightly faster (for anyone interested we're spinning up 13 containers using docker-compose as an env to test against, I wrote a blog post about it here). Went from 7m 30s to 5m.
I could do with more CPU though, so if the xlarge resource class became available on the machine executor I would definitely give it a go. If there's a big enough speed increase we'd pay for it.
Alexey
A quick update here: a large resource class is now available for the Machine executor for customers on our Free and Performance plans. Link to the relevant docs section.
R
Ryan Gledhill
+1
A
Adam Dry
+1
Our test scenario requires quite a number of docker containers, it takes ~8 mins just to spin up the environment as it's CPU constrained.
8GB mem is just about ok for us.
M
Mathias Dahl-Olsen
1+ for this
H
Hadle Selsaas
+1
Load More
→