我试图限制可从 docker 访问的总资源(例如只有 90% 的 RAM 和 1500% 的 CPU)。我在启动容器时无法使用 CPU 和 RAM 限制,这就是为什么我需要限制可用于 docker 容器的总资源。
我有大约 20 个容器,它们可以消耗最大 CPU 和内存但不能同时消耗,所以我无法设置 CPU 和 RAM 限制,这就是为什么我需要限制 docker 使用的总资源
首先,我创建了一个切片:我尝试了上面的指令,但无法同时限制 RAM 和 CPU 使用率
# /etc/systemd/system/docker_limit.slice
[Unit]
Description=Slice that limits docker resources
Before=slices.target
[Slice]
CPUAccounting=true
CPUQuota=700%
#Memory Management
MemoryAccounting=true
MemoryHigh=20G
MemoryMax=25G
MemoryMaxSwap=10G
Run Code Online (Sandbox Code Playgroud)
还有我的 daemon.json
{
"insecure-registries" : [ "url1", "url2"],
"cgroup-parent": "docker_limit.slice"
}
Run Code Online (Sandbox Code Playgroud)
但是当我从容器中尝试时:
stress --vm-bytes $(awk '/MemAvailable/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1
Run Code Online (Sandbox Code Playgroud)
我可以从 docker stats 中看到它使用的是 111Go …