为什么我的 docker 容器使用高 cpu,但我的 docker 主机几乎没有被利用?

问题描述 投票:0回答:2

我试图了解docker容器与其主机之间的关系。我的设置如下:

  • 虚拟机管理程序:Proxmox(4x 10 核 Xeon,总共 80 个线程)
  • Docker 主机:Proxmox 上的 LXC,分配 40 个核心
  • Docker 主机操作系统:Ubuntu 22.10

我所看到的:

我有大约 16 个容器在 docker 中运行。根据 docker stats 的报告,大多数只使用了 CPU 的一小部分。尤其是利用率徘徊在 100% 左右,有时甚至远高于 100%。

当我查看主机 lxc 容器上的 CPU 利用率时,它的空闲率约为 96%。我很困惑为什么 docker 容器运行得如此“热”并且没有使用更多可用的硬件。我发现了很多关于设置限制的文档,但没有相反的文档 - 这应该是默认行为。

好像允许 CPU 突破 100%,我没有看到任何性能类型问题 - 但看到我的监控图表上有 100% 的情况让我很困扰:)

我可以采取任何行动来补救这个问题,还是我就保持原样?

docker lxc proxmox
2个回答
0
投票

显然,

docker stats
显示了所有CPU核心的容器CPU使用率,如果您的容器使用120%并且主机有N个核心,则每个核心的平均CPU使用率为120%/N。


-1
投票

您可以限制 docker 容器的 CPU 使用,在 docker 命令中使用以下标志

--cpus=“1.0”

示例

docker run --cpus="1.0" --name my_container <docker image name>

© www.soinside.com 2019 - 2024. All rights reserved.