Docker daemon has 7.2G memory limit in xlarge resource_class

#1

We are building using “xlarge” resource_class (16G of memory).

You would assume that this would give us 16G to do what we feel like, but that’s not the case.

We are building and deploying a docker swarm inside of our build, and I noticed (via the docker stats command) that the docker daemon is limited only to 7.302 G of memory.

Sample output:

CONTAINER           CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
6e24ee3537a3        0.00%               1.234MiB / 7.302GiB   0.02%               1.83kB / 1.07kB     147kB / 0B          2
f3bb1ebb3b6e        1.15%               402.3MiB / 7.302GiB   5.38%               175kB / 240kB       8.52MB / 98.3kB     276
7f7698176b25        0.11%               143.4MiB / 7.302GiB   1.92%               75.8kB / 42kB       2.13MB / 381kB      17
f9ac7a75b58c        0.15%               137MiB / 7.302GiB     1.83%               76.3kB / 41.7kB     24.6kB / 287kB      18
5c566d96f901        0.25%               365.7MiB / 7.302GiB   4.89%               159kB / 228kB       45.4MB / 139kB      151
6939c8f3daab        0.31%               592.1MiB / 7.302GiB   7.92%               751kB / 690kB       52MB / 123kB        217
84c15e83876e        0.79%               413.3MiB / 7.302GiB   5.53%               233kB / 246kB       46.1MB /      2

However, based on the UI in the build, we are allocated: 8CPU/16384MB

Why is CircleCI limiting us to 7.302G of memory when using docker? When we ask for 16G, we expect to be able to use all of those 16G.

Thanks.

1 Like

#2

Hi there. setup_remote_docker doesn’t use the resource_class settings. Are you able to use the machine executor instead?

0 Likes

#3

@lbornov2 To clarify, the resource_class settings apply only to the main container where your job is running. Any non-docker commands you run are accessing the full 16GB of memory that you’ve requested. However, docker commands are running in a separate environment, which is why you’re seeing different numbers for that docker stats command:

https://circleci.com/docs/2.0/building-docker-images/#separation-of-environments

1 Like

#4

We can’t use the machine executor.

0 Likes

#5

Any way to increase the memory provided by remote docker?

0 Likes

#6

Not currently. This request is being tracked here https://ideas.circleci.com/ideas/CCI-I-707

Please vote to express interest and track updated, and comment with any needed details regarding your use case.

0 Likes