JVM性能调优监控工具进行介绍(jconsole,jmap,jstack)

java -Xmx1000m -Xss100m -jar yourjarfile.jar 是一种 Java 命令行参数的设置方式,用于在命令行运行 Java 应用程序时设置 Java 虚拟机的堆大小和栈大小等参数。


具体来说,-Xmx1000m 参数是设置 Java 虚拟机的最大堆大小,这里将最大堆大小设置为 1000MB,即 1GB。设置较大的堆大小可以让 Java 应用程序拥有更多的内存空间用于分配对象和缓存数据等,但也要注意程序运行时占用的内存不要超过系统物理内存,否则会导致系统缓慢或崩溃。JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。

-Xss100m 参数是设置 Java 虚拟机线程栈大小,这里将线程栈大小设置为 100MB。线程栈是应用程序用于存储方法调用和本地变量的内存区域,设置较大的线程栈可以允许程序调用更深的递归方法或者同时启动更多的线程,但也要注意占用的内存不要超过系统物理内存或默认值(通常为 512KB 或 1MB),否则也会导致应用程序崩溃或运行缓慢。
默认情况下不会指定栈内存大小,因此将使用默认值.
Java  栈内存大小在不同的  JVM  和操作系统下可能有所不同,但通常默认大小为  1MB~10MB,具体取决于对应的  JVM  和操作系统。


综上所述,这条命令意思是启动一个 Java 应用程序,设置虚拟机的最大堆内存为 1GB,设置线程栈大小为 100MB,并指定要运行的 JAR 文件。

jconsole远程tomcat进程

修改tomcat/bin/catalina.sh文件,粘贴如下到catalina.sh 文件 

JAVA_OPTS="-Djava.rmi.server.hostname=192.168.53.53 -Dcom.sun.management.jmxremote.port=11000 -Dcom.sun.management.jmxremote.rmi.port=11000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

 打开jconsole连接tomcat进程,无需输入 用户名/口令

 jconsole远程jboss进程(用户名/口令 可以不用填写),查看 内存,线程, 类

%JBOSS_HOME%\bin\run.sh文件中将 JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME "修改为:

 JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME -Dcom.sun.management.jmxremote.port=15080 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

jstack -h   查看帮助

jstack是jdk自带的线程跟踪工具,用于打印指定 java进程(如jboss中run.sh配置的15080端口) 的线程堆栈信息   如下pid=15080

jstack -l pid >>jstack.log      用于生成java虚拟机当前时刻的线程快照 (jstack.log 默认就带时间戳)



jmap -h   查看帮助

jmap -histo pid >>jmap.log     打印此刻,堆 内存中所有的对象 和 数量 (jmap.log 默认没带时间戳)

真实应用场景,是写的定时shell脚本,测试人员主要运行脚本, 来定时抓取 快照(包含jstack和jmap),生成一段时间间隔的连续文件

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值