aws / aws/containers-roadmap

[ECS] [request]: Support for restricting containers to a single NUMA node

Open
#1,093 2 comments 4 reactions 0 assignees View on GitHub
ECS Proposed
Dominant language
Shell
Stars
5.4k
Forks
334
PR merge metrics
No merged PRs in 30d

Description

### Community Note

* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment

**Tell us about your request**
Docker allows us to specify `cpuset-cpus` to pin to specific CPUs or more widely to use `cpuset-mems` to pin to specific NUMA nodes and prevent the container trying to use memory across another socket which can cause massive performance hits. I'd like this to be exposable by the ECS API but also to have a higher level requirement where we can just state the number of NUMA nodes it can use (which we would like to stick as 1). This higher level feature would then mean it's much easier to just throw any CPU heavy workload at a dual socket (or more) instance and not have to worry about NUMA issues.

**Which service(s) is this request for?**
ECS

**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
We have some CPU heavy tasks that require a lot of memory access. When we run them on a c5.18xl or c5.24xl instance then they are much slower than when we run on c5.9xl or c5.12xl instances due to NUMA issues where computation is limited by memory access times when going across cores.

**Are you currently working around this issue?**
We're using single socket nodes only. We'd like to be able to be flexible and use autoscaling groups that support mixed instance types including the dual socket nodes.

Contributor guide

Open the contributing guide

Research direction

Start with the request's Docker NUMA concepts, `cpuset-cpus` and `cpuset-mems`, and the ECS service context described in the issue. The payload names no repository files, entry points, or tests; done would require ECS API support for NUMA restrictions and the proposed higher-level limit on usable NUMA nodes.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.