CPU/Memory 包含 1 个以上容器的任务的设置
CPU/Memory setting for Task with more than 1 container
如果我在 Fargate 上创建一个任务 运行 超过 1 个容器。
忽略每个容器应该被拆分到它的任务中的事实。
例如地形代码:
resource "aws_ecs_task_definition" "citi" {
family = "myfamily"
execution_role_arn = data.aws_iam_role.this.arn
container_definitions = <<EOF
[
{
"name": "myapp1",
"image": "myapp1image",
"portMappings": [
{
"containerPort": 10001
}
]
},
{
"name": "myapp2",
"image": "myapp2image",
"portMappings": [
{
"containerPort": 10004
}
]
}
]
EOF
cpu = 512
memory = 1024
requires_compatibilities = ["FARGATE"]
network_mode = "awsvpc"
}
注意:未指定 cpu 和容器中的内存。
- 每个容器是否应指定其 cpu/memory 值作为最佳实践?
- 如果不是如上例,cpu/memory 是如何分配给每个容器的?
他们得到一半的整体吗?容器1得到cpu256,内存512
或其他东西,例如如果 Container 1 忙而 Container 2 不忙,Container1 最
任务资源
- 如果每个容器都将 essential 的默认值设置为 true,这是否意味着容器
1 停止,任务将停止,因此容器 2 停止?
短篇小说:
1-这取决于用例。如果你想为简单性而优化,你可以避免这种情况,并且两个以上的容器将在任务中争夺资源。如果你想优化控制,你应该配置它。
2- 是的(有点)。他们基本上是要争夺所有 cpu/memory 的资源,权重相等。
3- 是
长话短说:https://aws.amazon.com/blogs/containers/how-amazon-ecs-manages-cpu-and-memory-resources/
如果我在 Fargate 上创建一个任务 运行 超过 1 个容器。 忽略每个容器应该被拆分到它的任务中的事实。 例如地形代码:
resource "aws_ecs_task_definition" "citi" {
family = "myfamily"
execution_role_arn = data.aws_iam_role.this.arn
container_definitions = <<EOF
[
{
"name": "myapp1",
"image": "myapp1image",
"portMappings": [
{
"containerPort": 10001
}
]
},
{
"name": "myapp2",
"image": "myapp2image",
"portMappings": [
{
"containerPort": 10004
}
]
}
]
EOF
cpu = 512
memory = 1024
requires_compatibilities = ["FARGATE"]
network_mode = "awsvpc"
}
注意:未指定 cpu 和容器中的内存。
- 每个容器是否应指定其 cpu/memory 值作为最佳实践?
- 如果不是如上例,cpu/memory 是如何分配给每个容器的? 他们得到一半的整体吗?容器1得到cpu256,内存512 或其他东西,例如如果 Container 1 忙而 Container 2 不忙,Container1 最 任务资源
- 如果每个容器都将 essential 的默认值设置为 true,这是否意味着容器 1 停止,任务将停止,因此容器 2 停止?
短篇小说: 1-这取决于用例。如果你想为简单性而优化,你可以避免这种情况,并且两个以上的容器将在任务中争夺资源。如果你想优化控制,你应该配置它。 2- 是的(有点)。他们基本上是要争夺所有 cpu/memory 的资源,权重相等。 3- 是
长话短说:https://aws.amazon.com/blogs/containers/how-amazon-ecs-manages-cpu-and-memory-resources/