我有一个关于docker stats命令的问题,希望有人可以帮助我。我是Docker领域的新手,想要监控docker容器的CPU使用率。
物理机器有8个核心(CPU0 ... CPU7)。我已经创建了一个容器,并使用以下命令将其CPU资源限制为1个核心(CPU0): docker run -itd --cpuset-cpus = 0 -p 8081:8080 binfalse / bives-webapp
我通过从Jmeter发送请求来强化容器,然后通过docker stats命令监视容器的CPU使用情况,该命令给出的值大于100%。
即使只向容器分配了一个内核,我也不明白为什么它会给出超过100%的值! 您对原因有任何想法吗? 这个CPU值是否表示除容器之外的某些系统进程的CPU使用情况?
感谢您提前的帮助。
docker版本: 客户端: 版本:17.06.0-ce API版本:1.30 Go版本:go1.8.3 Git提交:02c1d87 构建时间:2017年6月23日星期五21:23:31 操作系统/架构:linux/amd64
服务器: 版本:17.06.0-ce API版本:1.30(最低版本1.12) Go版本:go1.8.3 Git提交:02c1d87 构建时间:2017年6月23日星期五21:19:04 操作系统/架构:linux/amd64 实验性质:真
docker info结果: 容器:2 运行中:1 已暂停:0 已停止:1 镜像:10 服务器版本:17.06.0-ce 存储驱动程序:aufs 根目录:/var/lib/docker/aufs 支持的文件系统:extfs 目录:141 Dirperm1受支持:true 日志记录驱动程序:json-file Cgroup Driver:cgroupfs 插件: 卷:本地 网络:桥接主机ipvlan macvlan null覆盖
日志: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog Swarm: 未激活 运行时: runc 默认运行时: runc Init 二进制文件: docker-init containerd 版本: cfb82a876ecc11b5ca0977d1733adbe58599088a runc 版本: 2d41c047c83e09a6d61d464906feb2a2f3c52aa4 init 版本: 949e6fa 安全选项: apparmor seccomp Profile: default 内核版本: 4.4.0-98-generic 操作系统: Ubuntu 16.04.2 LTS 操作系统类型: linux 架构: x86_64 CPU: 8 总内存: 15.56GiB 名称: logti048131 ID: RHOG:IR6N:FVC4:YDI5:A6T4:QA4Y:DDYF:7HZN:AI3L:WVLE:BNHY:6YNV Docker 根目录: /var/lib/docker 调试模式 (客户端): false 调试模式 (服务器): false 注册表: https://index.docker.io/v1/ 实验性功能: true 不安全的镜像仓库: 127.0.0.0/8 启用 Live Restore: false警告:不支持交换空间限制
docker info
是否显示任何cgroup警告?您能否描述更多有关负载的详细信息?我无法在自己的实验室中使用bash shell中的简单while“true loop”来重现此问题。与其限制为物理CPU,不妨考虑对内核调度程序使用--cpus = 1.0
。 - BMitch