我的应用程序设置:通过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%
与% System CPU 93.36
同时获得JavaMelody。
在我的机器中,有8个核心。为什么1和2中的数字不同?如何解释它们?
由于
答案 0 :(得分:1)
这里800%是正确的,这是一个标准符号,用于说明8个内核100%正在使用中。
所以356%意味着docker容器进程(不仅仅是java Tomcat)使用了8个核心中的近4个。
与Javamelody相反,Javamelody用于通过JMX监视Java应用程序的“A Step-by-Step Guide to Tomcat Performance Monitoring”,并报告 more :来自“Java – monitoring cpu and system load of multi-threaded application via OperatingSystemMXBean”,该值为所有核心的聚合。)
问题是:docker stats和javamelody不会在同一时间监视活动,并且可以报告(和聚合)不同的活动峰值。