我的应用程序设置:通过docker-compose设置4个docker容器:myapplication(tomcat,jersey application),kafka,postgres,zookeeper。
我需要知道tomcat容器的CPU使用率。
1,我用JavaMeloday来获取% System CPU 93.36
,more details。
2,我使用docker stats <docker id>
来获得CPU %
与356%
同时与JavaMelody的% System CPU 93.36
。
在我的机器中,有8个核心。为什么1和2中的数字不同?怎么解释他们?
谢谢
这里800%是正确的,这是一个标准符号,用于说明8个核心100%正在使用中。
所以356%意味着docker容器进程(不仅仅是java Tomcat)使用了8个内核中的近4个。
与通过JMX监视Java应用程序的“A Step-by-Step Guide to Tomcat Performance Monitoring”中使用的Javamelody相反,并报告更多:来自“Java – monitoring cpu and system load of multi-threaded application via OperatingSystemMXBean”,该值是所有核心的聚合)。
问题是:docker stats和javamelody不会在同一时间监视活动,并且可以报告(和聚合)不同的活动峰值。