如何在 docker 容器中获取 CPU tomcat 运行 的用法

how to get CPU usage of tomcat running in docker container

我的应用程序设置:4 docker 容器由 docker-compose 设置:myapplication(tomcat,jersey 应用程序),kafka,postgres,zookeeper。

我需要了解 tomcat 容器的 CPU 用法。

1、我用JavaMeloday得到了% System CPU 93.36,more details.

2,我用docker stats <docker id>得到CPU %和JavaMelody的% System CPU 93.36同时是356%

我的机器有8个核心。为什么1和2中的数字不同?如何解释?

谢谢

moby/moby issue 26711所述:

800% is correct here, which is a standard notation for telling that 8 cores are 100% in use.

所以 356% 意味着 docker 容器进程(不仅仅是 java Tomcat)几乎使用了 8 个内核中的 4 个。

与“A Step-by-Step Guide to Tomcat Performance Monitoring", which monitors the Java application through JMX, and reports more: from "Java – monitoring cpu and system load of multi-threaded application via OperatingSystemMXBean”中使用的 Javamelody 相反,该值是所有核心的总和。

问题是:docker 统计数据和 java 旋律不会同时监控 activity,并且可能会报告(和汇总)不同的 activity 高峰。