如果检查了关于这个问题的其他问题,但到目前为止没有任何灵魂.这是我的设置:TC6在我的macbook上运行debian vm.在/etc/default/tomcat6.0我有以下选项集:
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
Run Code Online (Sandbox Code Playgroud)
netstat -ntlp给了我:
tcp6 0 0 :::8080 :::* LISTEN 6550/java
tcp6 0 0 :::8086 :::* LISTEN 6550/java
Run Code Online (Sandbox Code Playgroud)
6550:
root 6550 3.3 6.8 224888 52984 pts/0 Sl 10:31 0:43 /usr/lib/jvm/java-6-sun/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6.0/conf/logging.properties -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.endorsed.dirs=/usr/share/tomcat6.0/common/endorsed -classpath :/usr/lib/jvm/java-6-sun/jre//lib/jcert.jar:/usr/lib/jvm/java-6-sun/jre//lib/jnet.jar:/usr/lib/jvm/java-6-sun/jre//lib/jsse.jar:/usr/share/tomcat6.0/bin/bootstrap.jar:/usr/share/tomcat6.0/bin/commons-logging-api.jar -Dcatalina.base=/var/lib/tomcat6.0 -Dcatalina.home=/usr/share/tomcat6.0 -Djava.io.tmpdir=/var/lib/tomcat6.0/temp org.apache.catalina.startup.Bootstrap start
Run Code Online (Sandbox Code Playgroud)
防火墙:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination …Run Code Online (Sandbox Code Playgroud) 我正在使用VisualVM来查找特定呼叫所花费的时间.我发现大部分时间都在数据库调用中,但是profier显示85%的时间是java.lang.Object,而DB调用只有15%.
我读错了吗?
带有数据的颜色是时间,时间(CPU),调用.

我从堆空间用尽的java进程中获得了1 GB的堆转储.我已将堆上传到jvisualm,它带有java6发行版.我在16个小时前开始了"计算保留大小"流程并且它仍在运行.在1GB堆上运行前20个对象的计算保留大小需要多长时间?我应该期待它能完成吗?
我在亚马逊云的Linux服务器上运行Tomcat 6.我正在尝试使用我的办公室Mac上的VisualVM连接到它.我允许打开桌面和服务器之间的所有TCP端口,但我无法让VisualVM做任何事情.
在linux框中,我已经启动了Tomcat:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9191
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Run Code Online (Sandbox Code Playgroud)
在我的Mac上,我启动VisualVM并选择File - > New JMX Connection ...
我在框中输入amazonhostname.com:9191.它说"添加amazonhostname.com:9191 ......"然后在那里停留几分钟才能超时.
从我的Mac,我可以"telnet amazonhostname.com 9191"就好了,我尝试了一些其他随机端口,他们都工作.我非常确信它不是防火墙问题,除非我需要打开UDP或ICMP或类似的东西.(真??)
服务器上的catalina.log或我的Mac上的系统控制台与jmx无关.服务器上的netstat显示9191,其他一些端口在所有接口上打开.
远程服务器上没有jstatd.这是JMX的先决条件吗?(我对Java完全不熟悉,我甚至不确定那些东西是什么意思,但我在某个博客文章中看到过.我现在正在抓住稻草.)
我有一个Tomcat webapp,它代表客户端执行一些漂亮的内存和CPU密集型任务.这是正常的,是所需的功能.但是,当我运行Tomcat时,内存使用量会随着时间的推移而猛增至4.0GB以上,此时我通常会杀死该进程,因为它会破坏我在开发计算机上运行的所有其他内容:

我以为我无意中用我的代码引入了内存泄漏,但在用VisualVM检查后,我看到了一个不同的故事:

VisualVM将堆显示为占用大约一GB的RAM,这就是我设置它所做的事情CATALINA_OPTS="-Xms256m -Xmx1024".
根据VisualVM的说法,为什么我的系统认为这个过程占用了大量的内存,它几乎没有占用任何内容?
经过一番进一步的嗅探,我注意到如果在应用程序中同时运行多个作业,则内存不会被释放.但是,如果我等待每个作业完成,然后再向我BlockingQueue提供服务ExecutorService,那么内存将被有效回收.我该怎么调试呢?为什么垃圾收集/内存重用会有所不同?
我正在尝试分析使用mvn jetty:runVisualVM 1.3.6 执行的Java 7应用程序.CPU显示为不可用,配置文件选项卡列出以下错误:
WARNING! Class sharing is enabled for this JVM. This can cause problems when profiling the application and eventually may crash it. Please see the VisualVM Troubleshooting Guide for more information and steps to fix the problem: https://visualvm.java.net/troubleshooting.html#xshare.
Run Code Online (Sandbox Code Playgroud)
我可以正常配置任何其他应用程序.
VisualVM日志多次显示以下错误:
java.io.IOException: Unable to open socket file: target process not responding or HotSpot VM not loaded
Run Code Online (Sandbox Code Playgroud)
可能相关的细节:
- OSX 10.8.3
- 在JDK 1.7u25下运行的app和VisualVM
我可以假设downvotes与这样一个事实有关,即有一个与此问题相关的文档错误以及设置的建议Xshare:off,我将包含此错误报告的链接,该报告在1.6u6之后将其列为已修复.我正在运行1.7u25,所以这不适用于我.
如何从Intellij Idea与VisualVM配置JUnit测试运行?VisualVM没有看到任何进程?有可能吗?
在使用VisualVM监视java程序时,我注意到垃圾收集器的行为中有一个有趣的模式.看起来很常见,在执行"正常"垃圾收集运行之后,GC会执行第二次,更多的cpu密集运行,这似乎没有额外的影响(更积极的运行之后使用的堆与它是在打火机之后).
我已经在VisualVM的输出上指出了你可以看到垃圾收集器运行和相应的堆使用变化.
我的问题基本上是垃圾收集器在这里做什么以及为什么?当有足够的可用内存时,是什么导致它尝试这些真正的cpu密集型运行,并且与较轻的运行相比没有可观察到的好处?或者我是否误解了图表?
该计划的表现并没有真正受到影响,我只是好奇.
我有一个运行tomcat的流浪汉VM,我想在一些测试中连接VisualVM来监控VM的性能.
我按照本指南设置了这个配置,建议创建一个setenv.sh脚本并将其放在/ usr/share/tomcat7/bin中.我发现setenv没有运行,所以我将以下内容放在/etc/tomcat/tomcat.conf中:
JAVA_OPTS="-Dcom.sun.management.jmxremote=true - Dcom.sun.management.jmxremote.port=9901 -Dcom.sun.management.jmxremote.ssl=false
Run Code Online (Sandbox Code Playgroud)
m.sun.management.jmxremote.authenticate = false -Djava.rmi.server.hostname = localhost -Dcom.sun.management.jmxremote.rmi.port = 9909"
我相信配置正在运行以下,我可以看到端口处于活动状态:
[vagrant@localhost ~]$ netstat -lntu | grep 99
tcp6 0 0 :::9901 :::* LISTEN
tcp6 0 0 :::9909 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
这是来自vagrant文件的配置:
# Ports enabled for VisualVM to work.
config.vm.network "forwarded_port", guest: 9901, host: 9905
config.vm.network "forwarded_port", guest: 9909, host: 9907
Run Code Online (Sandbox Code Playgroud)
但是在输入以下配置后,或者关闭(已经尝试过127.0.0.1并启用"不需要SSL"的所有内容,我得到的是"".
我也尝试过端口9901,9905,9909.
有关如何解决这个问题的任何想法?