要了解 Docker 容器使用了多少 CPU,有几种常见方法可以参考:
一、在容器内部查看可用 CPU 核心数量
进入容器后,可以使用以下命令查看容器可以使用的 CPU 核心数量:
-
查看容器允许使用的核心范围
cat /sys/fs/cgroup/cpuset/cpuset.cpus这个文件显示容器被限制的 CPU 核心,比如
0-2表示只允许用第 0 到第 2 个核心。如果这个文件为空或显示所有核心,说明容器没有 CPU 限制,可以使用主机的全部核心。 -
查看容器中实际能看到的核心数
lscpu:查看 CPU 信息,其中CPU(s)一行显示当前能看到的核心数。nproc:快速输出当前可用的处理器数量。cat /proc/cpuinfo | grep processor | wc -l:统计处理器数量,效果和nproc类似。
二、在宿主机查看容器的 CPU 限制设置
-
查看容器配置
docker inspect <容器ID或名称>查看输出中的
"CpusetCpus"字段,这里会显示容器被限制使用的具体 CPU 编号。 -
查看主机 CPU 核心数
cat /proc/cpuinfo可用于了解宿主机总共有哪些核心,从而判断容器是否被限制。
三、实时查看容器的 CPU 使用情况
-
使用 Docker 提供的统计命令
docker stats可以实时看到容器的 CPU 使用率(百分比),但不会显示具体用了多少核心。
总结表
| 目的 | 命令 | 说明 |
|---|---|---|
| 查看可用核心范围 | cat /sys/fs/cgroup/cpuset/cpuset.cpus | 显示容器允许使用的核心编号 |
| 查看容器中核心数 | lscpu / nproc / cat /proc/cpuinfo | 显示容器中可见的核心数量 |
| 查看容器限制配置 | docker inspect | 查 CpusetCpus 字段看是否有限制 |
| 查看主机核心信息 | cat /proc/cpuinfo | 显示宿主机全部核心 |
| 实时看使用率 | docker stats | 查看当前 CPU 使用百分比 |
通过以上方法,你可以判断 Docker 容器当前使用了多少个 CPU 核心,是否有限制,并了解其实际的使用情况。