Tag: visualvm

Heroku上的VisualVM(带Docker)

我有一个Dockerized Scala Play应用程序,我通过他们的容器registry部署到Heroku。 它似乎有一个小的内存泄漏。 我想通过使用VisualVM来解决这个问题,但我无法将VisualVM连接到Heroku中的应用程序。 我已经经历了这些步骤: 我启用了functionruntime-heroku-exec 我安装了heroku-cli-java 当我运行heroku java:visualvm对我的应用程序,我得到以下回应: build立凭证…错误 ▸无法连接到dyno! ▸检查dyno是否正在运行'heroku ps' PS我怀疑是内存泄漏,因为Heroku报告“R14 – 内存配额超标”。 任何想法如何在dockerized Heroku应用程序中启用VisualVM?

在GCE上的Docker中将VisualVM或JConsole附加到Java

我正在尝试在远程Java-in-Docker进程中获取一些CPU采样。 我已经在这里看到了相关的问题,并尝试了一切,没有用,所以我在这里发布我的设置。 我有一个在Google Compute Engine(GCE)实例的Docker容器中运行的Java进程(openjdk-8)。 GCE实例和容器都运行Debian-9。 我想将VisualVM或JConsole附加到我的Java进程。 我能够在本地运行我的docker容器,并使用localhost:9010连接到visualvm和jconsole。 我使用以下命令启动VM启动脚本中的容器: docker run -d -p 9010:9010 <my container> Dockerfile还有: EXPOSE 9010 由Dockerfile CMD启动的Java进程具有以下相关的参数: "-Dcom.sun.management.jmxremote", \ "-Dcom.sun.management.jmxremote.port=9010", \ "-Dcom.sun.management.jmxremote.rmi.port=9010", \ "-Dcom.sun.management.jmxremote.local.only=false", \ "-Dcom.sun.management.jmxremote.authenticate=false", \ "-Dcom.sun.management.jmxremote.ssl=false", \ 我在我的gcloud防火墙中打开了端口9010,使用: gcloud compute firewall-rules create jmx-port –allow=tcp:9010,udp:9010 我已经validation与netcat的端口是开放的,我可以做一个TCP连接到它。 我从同一个Docker容器中打开了其他端口,客户端成功连接到这些端口。 他们被暴露并以相同的方式映射到主机端口(-p端口:端口),并以相同的方式在防火墙中打开。 我正在传递GCE实例的外部IP地址。 例如,如果我这样做: gcloud compute instances list 它告诉我: NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP […]

VisualVM无法将docker中的远程tomcat连接到RMI

我在远程计算机上的docker容器中运行tomcat。 现在我想用VisualVM来连接。 我的docker启动命令: docker run -d –name tomcat -p 26000:8080 -p 9090:9090 -p 9091:9091 -v /data/docker/tomcat/webapps:/data/tomcat/webapps -v /data/docker/tomcat/logs:/data/tomcat/logs -e CATALINA_OPTS="-Xms2048M -Xmx2048M -XX:MaxPermSize=256M -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1" my.private.hub/tomcat:latest 和catalina.log: 13-Mar-2015 10:29:56.615 INFO [Thread-10] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-apr-8080"] 13-Mar-2015 10:29:56.666 INFO [Thread-10] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-apr-8009"] 13-Mar-2015 10:29:56.718 INFO [Thread-10] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-apr-8080"] 13-Mar-2015 10:29:56.718 […]

VisualVM连接到托pipe在Docker上的Tomcat

我试图configuration一个从VisualVM到托pipe在远程Docker机器上的Tomcat的JMX连接: locahost with VisualVM –> server with docker (192.168.23.8) –> Tomcat container 我的Dockerfile是: FROM centos:centos6 RUN yum upgrade -y \ && yum -y install java-1.7.0-openjdk \ && yum -y install tar \ && yum clean all COPY apache-tomcat-7.0.64.tar.gz /tmp/ RUN mkdir /opt/tomcat RUN tar -xzvf /tmp/apache-tomcat-7.0.64.tar.gz –directory /opt/tomcat/ –strip 1 RUN rm /tmp/apache-tomcat-7.0.64.tar.gz COPY catalina-jmx-remote.jar […]

VisualGC到docker中运行的远程JVM

我从Oracle的VisualGC 文档 (以及我从这个主题find的所有东西,例如这个问题 )的文档中了解到,当使用VisualGC连接到远程JVM时,需要使用jstatd服务器。 我的JVM运行在Docker容器中,运行在该容器中的唯一进程就是JVM,我希望这样保持容器的最佳实践 。 有没有什么办法可以使用VisualGC(我的客户端是VisualVM的VisualGC插件)与在Docker中运行的JVM?