从 docker 容器实例中的 node.js os.cpus() 检索到的 CPU 用法是否指示主机 CPU 或容器 CPU?

Does the CPU usage retrieved from node.js os.cpus() in a docker container instance indicate host CPU or container CPU?

我正在使用 os.cpus() 来监控我在容器实例中的 node.js 应用程序,但想知道该用法是否指示实例的 CPU 或 docker 宿主?

对于docker容器,CPU/mem在容器内部和外部没有像虚拟机那样的硬性区分。基本上,所有容器都共享相同的内核,并且没有 CPU 或内存的命名空间导致容器以不同的方式看待它们。因此,os.cpus() 显示主机系统的使用信息,包括所有工作负载。要查看容器的使用信息,您可以在主机系统上使用 docker stats 命令。对于 Node.js,检查 systeminformation 包,它还提供 docker 容器的使用信息。但是,这仅在 运行 在主机上(而不是在容器内)可用!

另请参阅:https://docs.docker.com/engine/reference/commandline/stats/