在 Kubernetes 中,当你为 Pod 设置了资源限制(包括 CPU 和内存)时,这些限制将被 Docker 容器引擎(或其他容器运行时)应用到运行的容器上。然而,docker stats 命令显示的 CPU 和内存使用百分比的计算方式是不同的。
对于内存(MEM),docker stats 显示的百分比是基于容器的内存限制的。也就是说,如果你为一个容器设置了 500MB 的内存限制,并且它正在使用 100MB,那么 docker stats 将显示它的内存使用百分比为 20%。
对于 CPU,情况就有些不同了。docker stats 显示的 CPU 使用百分比是基于整个系统的 CPU 容量的,而不是基于容器的 CPU 限制。也就是说,如果你的系统有 4 核,你为一个容器设置了 2 核的 CPU 限制,并且它正在全速运行,那么 docker stats 将显示它的 CPU 使用百分比为 50%,而不是 100%。这是因为从整个系统的角度来看,它只使用了总 CPU 容量的一半。