首页 > 编程知识 正文

说说你对jvm的理解,jvisualvm怎么读

时间:2023-05-05 21:28:18 阅读:48044 作者:4327

jvisualvm能做什么:监视内存泄漏、跟踪垃圾回收、运行时内存、cpu分析、线程分析.

jvisualvm已经集成到jdk1.6或更高版本中(不是jre )。 自身运行最低需要JDK版本1.6,但可以监视运行在JDK版本1.4或更高版本上的java程序

在jdk1.6update45(jdk1.6update45附带的jvisualvm )中进行了说明,请另外下载jvisualvm,成功安装JDK后,前往JDK的asjddp目录下,然后单击jvisualvm

在网上,jvisualvm被认为对ntfs硬盘格式的支持很差。 (说不好,但我没有说到底哪里不好。 )反正我用的很普通,总之记下解决方法吧。

创建jvisualvm.exe快捷方式,右键单击快捷方式,选择属性,然后在“目标”栏中添加“- xx : perfbypassfilesystemcheck”

程序运行时,将自动监视本地运行的java程序。 (在Local标记下,远程服务器上的java程序必须单独设置。 对于下载的jvisualvm,解压缩后运行asjddp目录下的jvisualvm.exe即可

可见,Local标记下的第一个VisualVM是jvisualvm自身的监视,消耗的资源还很少,第二个是本机eclipse

监视项目共分为Overview、Monitor、Threads和一个Sampler。

1.Overview(jvm启动参数,系统参数)

显示eclipse的启动参数

(这些启动参数可以确定程序是否存在内存溢出。)

2.Monitor

左上: cpu使用率,gc状态监测

右上:堆利用率、永久内存空间利用率

左下角:班级监视

右下角:监视线程

performGC:gc的详细运行状态

HeapDump :堆的详细状态(堆摘要,可以看到其中的所有类,可以访问具体的一个类以查看该类的状态)。

3.Threads

能够查看线程的名称和执行状态是调试多线程所必不可少的,单击线程可以查看该线程的详细执行情况

监控服务器上的tomcat

将:添加到tomcat配置文件catalina.sh中

ava _ opts='-DCOM.sun.management.JMX remote.port=9998-DCOM.sun.management.JMX remote.SSL=false-d cote

指定了JMX启动的代理端口。 此端口是visualvm虚拟机连接的端口。 (9998端口不能在其他程序中使用netstat-an |。gerp 9998 ) DCOM.sun.management.JMX remote.port=9998表示, JMX是否启用SSL DCOM.sun.management.JMX remote.authenticate=falli cate密码验证(DCOM.sun.management.JMX remote ) 服务器主机名DJ ava.RMI.server.hostname=192.168.58.164指定要填写主机名。

右键单击以创建jmx连接:

请填写端口号。

配置完成:

监控服务器上的java程序

要比监视tomcat麻烦得多,请启动jstatd服务${java_home}/asjddp目录下}

jstatd是一个远程监视软件(RMI )服务器程序,用于监视从创建到销毁JVM的资源消耗,并提供远程监视接口(如果本地连接了远程监视软件)

要运行jstatd,必须在-J-Djava.security.policy=***中指定安全策略,因此在服务器上创建指定安全策略的文件jstatd.all.policy 已放入${java_home}/asjddp

grant code base ' file :/home/123/123/JDK1.5.0_ 15/lib/tools.jar ' { permission Java.security.alllpermion } 然后使用此策略文件启动jstatd服务

[ 123 @ 123 asj DDP ] $ pwd/home/123/123/JDK1.5.0_ 15/asj DDP [ 123 @ 123 asj DDP ] $./j statd-j-DJ ava.secuuu

./j statd-j-DJ ava.security.policy=./j statd.all.policy-j-DJ ava.RMI.server.log calls=true其次是jvisualls

需要特别注意的是,在配置远程监视java程序时,jvisualvm可能会报告错误

单击以查看错误详细信息:

connectionrefusedtohost :127.0.0.1初步确定与主机名的关系

[ 123 @ 123 asj DDP ] # hostname-I 127.0.0.1 [ 123 @ 123 asj DDP ] # hostname 192.168.58.168修改重启jstatd服务(网上很多人

填写主机名:

要在此处添加jstatd连接:

请直接选择默认配置。 默认值使用1099端口。

单击ok后,将自动列出168个所有java程序。

PS:

jvisualvm也可以安装插件。 具体步骤为tool - plugin -aviable plugin,推荐非常易用的插件VisualGC

安装此插件后,将添加新的监视条目Visual GC,并显示虚拟机内存中每个区域的使用情况

转载于:https://www.cn blogs.com/Sean-Zou/archive/2012/12/27/3710083.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。