NAME

Podman-更新-更新给定容器的cgroup配置

SYNOPSIS

podman update [options] container

podman container update [options] container

DESCRIPTION

更新现有容器的cgroup配置。当前支持的选项是Podman创建/运行资源限制选项的子集。这些新选项是非持久性的,并且仅在容器的当前执行期间有效;配置在其下一次运行时生效。这意味着该命令只能在已经运行的容器上执行,所做的更改将在容器下次停止和重新启动时被擦除,这是为了确保不变性。该命令使用一个参数、容器名称或ID以及资源标志来修改cgroup。

OPTIONS

--blkio-weight = 重量

数据块IO相对权重。这个 weight 是介于 101000

Cgroup V1无根系统不支持此选项。

--blkio-weight-device = device:weight

数据块IO相对设备权重。

--cpu-period = 限制

设置完全公平调度程序(CFS)的CPU周期,它是以微秒为单位的持续时间。一旦容器的CPU配额用完,它将不会被调度运行,直到当前周期结束。默认为100000微秒。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpu-quota = 限制

限制CPU完全公平调度器(CFS)配额。

限制容器的CPU使用量。默认情况下,容器使用全部CPU资源运行。该限制是一个以微秒为单位的数字。如果提供了一个数字,则允许容器使用该数量的CPU时间,直到CPU周期结束(可通过 --cpu-period )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpu-rt-period = 微秒级

以微秒为单位限制CPU实时周期。

限制容器的实时CPU使用率。该选项告诉内核将容器的实时CPU使用率限制在指定的时间段内。

此选项仅在cgroup V1 Rootful系统上受支持。

--cpu-rt-runtime = 微秒级

以微秒为单位限制CPU实时运行时间。

限制容器的实时CPU使用率。该选项告诉内核限制给定的CPU周期内实时任务可能消耗的时间量。例如:周期为1,000,000 us,运行时间为95,000 us意味着该容器可以消耗95%的可用CPU,并将剩余的5%留给正常的优先级任务。

容器中所有运行时间的总和不能超过分配给父cgroup的数量。

此选项仅在cgroup V1 Rootful系统上受支持。

--cpu-shares-c = 股票

CPU占有率(相对权重)。

默认情况下,所有容器获得相同比例的CPU周期。可以通过相对于所有运行的容器的组合权重更改容器的CPU份额权重来修改此比例。默认权重为 1024

这一比例仅适用于CPU密集型进程正在运行时。当一个容器中的任务空闲时,其他容器可以使用剩余的CPU时间。根据系统上运行的容器数量,实际的CPU时间会有所不同。

例如,假设有三个容器,其中一个的CPU份额为1024,另外两个的CPU份额设置为512。当所有三个容器中的进程尝试使用100%的CPU时,第一个容器获得总CPU时间的50%。如果添加的第四个容器的CPU份额为1024,则第一个容器仅获得33%的CPU。其余容器分别获得16.5%、16.5%和33%的CPU。

在多核系统上,CPU时间的份额分布在所有CPU核上。即使容器的CPU时间被限制在100%以下,它也可以100%地使用每个单独的CPU核心。

例如,假设一个系统有三个以上的核心。如果容器 C0 开头是 --cpu-shares=512 运行一个进程和另一个容器 C1 使用 --cpu-shares=1024 运行两个进程时,这可能会导致以下CPU份额划分:

PID

容器

CPU

CPU占有率

100

C0

0

100%CPU0

101

C1

1

CPU1的100%

102

C1

2

CPU2的100%

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpus =

CPU数量。缺省值为 0.0 这意味着没有限制。这是以下的速记 --cpu-period--cpu-quota ,因此不能使用指定该选项 --cpu-period--cpu-quota

在某些系统上,可能不允许非超级用户更改CPU限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpuset-cpus =

允许执行的CPU。可以指定为逗号分隔的列表(例如 0,1 ),作为一个范围(例如 0-3 ),或其任意组合(例如 0-3,7,11-15 )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--cpuset-mems = 节点

允许执行的内存节点(MEM)(0-3,0,1)。仅在NUMA系统上有效。

如果系统上有四个内存节点(0-3),请使用 --cpuset-mems=0,1 则容器中的进程仅使用来自前两个内存节点的内存。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--device-read-bps = path:rate

限制设备的读取速率(以字节/秒为单位)(例如 --device-read-bps=/dev/sda:1mb )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--device-read-iops = path:rate

限制设备的读取速率(以每秒IO操作数为单位)(例如 --device-read-iops=/dev/sda:1000 )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--device-write-bps = path:rate

限制设备的写入速率(以字节/秒为单位)(例如 --device-write-bps=/dev/sda:1mb )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--device-write-iops = path:rate

限制设备的写入速率(以每秒IO操作数为单位)(例如 --device-write-iops=/dev/sda:1000 )。

在某些系统上,可能不允许非超级用户更改资源限制。欲了解更多详情,请访问https://github.com/containers/podman/blob/main/troubleshooting.md#26-running-containers-with-resource-limits-fails-with-a-permissions-error

Cgroup V1无根系统不支持此选项。

--memory-m = number[unit]

内存限制。一个 unitb (字节), k (千比字节), m (兆字节),或 g (千兆字节)。

允许限制容器可用的内存。如果主机支持交换内存,则 -m 内存设置可以大于物理RAM。如果指定限制为0(不使用 -m ),容器的内存不受限制。实际限制可能四舍五入为操作系统页面大小的倍数(该值非常大,即数百万万亿)。

Cgroup V1无根系统不支持此选项。

--memory-reservation = number[unit]

内存软限制。一个 unitb (字节), k (千比字节), m (兆字节),或 g (千兆字节)。

设置内存预留后,当系统检测到内存争用或内存不足时,会强制容器将其消耗限制为其预留。因此,请始终将该值设置为 --memory ,否则以硬限制为准。默认情况下,内存预留与内存限制相同。

Cgroup V1无根系统不支持此选项。

--memory-swap = number[unit]

一个等于内存加交换空间的限制值。一个 unitb (字节), k (千比字节), m (兆字节),或 g (千兆字节)。

必须与 -m ( --memory )旗帜。参数值必须大于 -m ( --memory )默认情况下,它被设置为值的两倍 --memory

设置 number-1 以启用无限制交换。

Cgroup V1无根系统不支持此选项。

--memory-swappiness =

调整容器的内存交换行为。接受介于以下范围的整数 0100

此标志仅在cgroup V1 Rootful系统上受支持。

--pids-limit = 限制

调整容器的PID限制。设置为 -1 为集装箱提供无限的PID。缺省值为 2048 在支持“PIDS”cgroup控制器的系统上。

EXAMPLEs

使用新的CPU配额和周期更新容器。

podman update --cpus=5 myCtr

使用croups v2的所有可用选项更新容器。

podman update --cpus 5 --cpuset-cpus 0 --cpu-shares 123 --cpuset-mems 0 --memory 1G --memory-swap 2G --memory-reservation 2G --blkio-weight-device /dev/zero:123 --blkio-weight 123 --device-read-bps /dev/zero:10mb --device-write-bps /dev/zero:10mb --device-read-iops /dev/zero:1000 --device-write-iops /dev/zero:1000 --pids-limit 123 ctrID

使用croups v1的所有可用选项更新容器。

podman update --cpus 5 --cpuset-cpus 0 --cpu-shares 123 --cpuset-mems 0 --memory 1G --memory-swap 2G --memory-reservation 2G --memory-swappiness 50 --pids-limit 123 ctrID

另请参阅

podman(1)podman-create(1)podman-run(1)

HISTORY

2022年8月,最初由Charlie Doerncdoern@redhat.com撰写