在这篇简短的文章中,我将展示一种简单的方法,以确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序。 我将使用标准工具JConsole,它是计算机上JDK安装的一部分。 如果存在问题(例如,内存泄漏,通常为GC,较长的GC等),您将在JConsole中看到它。 为了分析问题的根源并找到解决方案,您可能需要使用功能更强大的高级工具。 我将在以下其中一篇文章中对此进行讨论。 提供了有关为ADF应用程序调整JVM的故事
在这里 。
因此,有一个ADF应用程序在Tomcat之上运行。 该应用程序和Tomcat被打包到在dkrlp01.flexagon主机上运行的Docker容器中。 有上运行的码头工人,容器中的ADF应用一些幻灯片。
为了将JConsole从我的笔记本电脑连接到容器中运行的JVM,我们需要在tomcat / bin / setenv.sh中添加以下JVM参数:
-Dcom.sun.management.jmxremote=true-Dcom.sun.management.jmxremote.rmi.port=9010-Dcom.sun.management.jmxremote.port=9010-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.local.only=false-Djava.rmi.server.hostname=dkrlp01.flexagon
除此之外,容器必须公开端口9010,因此应使用
“ docker run -p 9010:9010…”命令。
完成后,我们可以在本地调用jconsole命令并连接到容器:
现在,使用您喜欢的测试工具(JMeter,OATS,SOAP UI,Selenium等)为应用程序增加一些负担,并观察内存利用率:
而已!
翻译自: https://www.javacodegeeks.com/2019/02/monitoring-adf-application-docker.html