我已经使用ctop这给出了一个更图形化的方式比docker_stats 但是我发现,它显示CPU个百分点,比一路走高什么顶部显示为系统。基本上它是相对于根本过程而言的。 Docker容器作为运行的子进程
为了用一个例子
首先说明找到在其下所有的容器中运行
搬运工-containerd-垫片根进程 - ..the泊坞架构被分成四个组件:Docker引擎,containerd,containerd-shm和runC。二进制文件分别称为docker,docker-containerd,docker-containerd-shim和docker-runc。 - https://hackernoon.com/docker-containerd-standalone-runtimes-heres-what-you-should-know-b834ef155426
root 1843 1918 0 Aug31 ? 00:00:00 docker-containerd-shim 611bd9... /var/run/docker/libcontainerd/611bd92.... docker-runc
你可以看到,使用命令
pstree -p 1918
现在说,我们希望看到fluentdb的CPU功耗运行的所有容器。
简单的方法来得到这个孩子pid是
pstree -p 1918 |grep fluentd
其中给出21670
现在可以运行top -p 21670
看到这个子进程的CPU占有率也top -p 1918
观察整体父进程的CPU。
随着管理人员收集到Promethus并在Grafana中查看,这是容器使用的实际CPU百分比的最接近和最准确的表示形式;关于主机。该图说明了这一点。 cTop和码头统计数据占CPU百分比的23%。 Docker父进程的实际CPU百分比约为2%,而Grafana的cAdvisor输出显示了与主机相关的容器CPU百分比的最“准确”值。
感谢您的回复,但是这并未如我所料。它让获得单个CPU百分比的事情变得复杂化,并且从外部观察容器。它在axibase容器中的某处保存了我必须通过容器并提取cpu的地方。不仅仅是一个简单的方法来获得容器本身的cpu百分比,就像docker的统计数据一样吗? – secret
公平起见,docker stats控制台在主机级收集所选容器的CPU使用率,是否正确?它只是不会将其存储在任何数据库中,但仍然无法从容器中获得这些统计信息。 您是否愿意测量容器CPU使用率作为容器内运行的所有进程的总CPU使用率? –
是的,我希望容器的CPU使用总量不是按进程进行处理。 – secret