Linux查看应用Jvm参数的几种方式

这里写自定义目录标题

第一种:jps查看jvm参数

jps简介

jps是jdk提供的一个查看当前java进程的小工具, 全称是JavaVirtual Machine Process Status Tool。

jps语法

jps [options] [hostid] 

options选项

-q :仅输出VM标识符,不包括class
-l :输出完全的包名,应用主类名,jar的完全路径名
-v:输出jvm参数
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件

jps常用命令

jps
jps -l    	输出主类或者jar的完全路径名
jps -v    	输出jvm参数
jps -q    	仅仅显示java进程号
jps -m 		输出JVM启动时传递给main()的参数
jps -lv		显示jar+jvm参数,一般部署多个服务就要用这个,边看服务名边看对应jvm参数
jps -mlv 	即m+l+v的都输出来

jps -lv查看应用jar及jvm参数

jps -lv

在这里插入图片描述

第二种:jmap查看堆栈信息

jmap简介

jmap(JVM Memory Map):作用一方面是获取dump文件(堆转储快照文件,二进制文件),它还可以获取目标Java进程的内存相关信息,包括Java堆各区域的使用情况、堆中对象的统计信息、类加载信息等。

jmap语法

jmap [option] <pid>
jmap [option] <executable> <core>
jmap [option] [server_id@]<remote server IP or hostname>

options选项

选项

作用

-dump

生成dump文件

-finalizerinfo

以ClassLoader为统计口径输出永久代的内存状态信息

-heap

输出整个堆空间的详细信息,包括GC的使用、堆配置信息,以及内存的使用信息等

-histo

输出堆空间中对象的统计信息,包括类、实例数量和合计容量

-histo[:live]

输出堆空间中对象的统计信息,包括类、实例数量和合计容量,如果live子参数加上后,只统计活的对象数量。
比如pid为1111,使用时: jmap -histo:live 1111

-permstat

以ClassLoader为统计口径输出永久代的内存状态信息

-F

当虚拟机进程对-dump选项没有任何响应时,强制执行生成dump文件

jmap -heap查看jvm参数、堆栈信息

先使用jps -l查看你需要输出的进程id是哪个

jps -l

执行jmap -heap pid即可,pid替换为自己的pid即可,如111

jmap -heap 111

在这里插入图片描述
jmap heap输出解析

第三种:ps -ef|grep java查看CMD列

ps -ef |grep+服务名来对于查询服务是否正常运行
ps -ef是显示所有进程的消息
中间的|是管道命令 是指ps命令与grep同时执行

grep是查找输出包含想要的字符串的行
后缀可以加参数

-A  显示所有程序。 
-e  此参数的效果和指定"A"参数相同。
-f  显示UID,PPIP,C与STIME栏位。 

结果显示里面的内容
从左往右依次表示为:UID PID PPID C STIME TTY TIME CMD

  • UID 程序被该 UID 所拥有

  • PID 就是这个程序的 ID

  • PPID 则是其上级父程序的ID

  • C CPU 使用的资源百分比

  • STIME 系统启动时间

  • TTY 登入者的终端机位置

  • TIME 使用掉的 CPU 时间。

  • CMD 所下达的是什么指令

举例

UID       PID       PPID       C     STIME    	TTY        TIME         CMD
zzw      14124   	13991      0     00:38      pts/0      00:00:00    	grep --color=auto dae

后面那一堆CMD列就可以看到jvm参数
在这里插入图片描述

### 回答1: 要查看JVM内存使用情况,可以使用以下命令: 1. jps命令:查看Java进程的进程ID 2. jstat命令:查看JVM内存使用情况,包括堆内存、非堆内存、GC情况等 3. jmap命令:生成JVM内存快照,可以用于分析内存泄漏等问题 4. jconsole命令:图形化界面查看JVM内存使用情况,包括堆内存、非堆内存、GC情况等 以上命令都可以在Linux系统下使用。 ### 回答2: 在Linux系统查看JVM内存使用非常简单,只需要使用命令行工具即可。 首先,我们需要确认JDK已经安装在系统。在终端输入下面命令来检查Java版本: java -version 如果Java命令不存在,则需要安装JDK。在Ubuntu系统,可以使用下面命令来安装OpenJDK: sudo apt-get install openjdk-8-jdk 安装完成后,我们可以在终端运行下面命令来启动JVM: java -Xms256m -Xmx1024m -jar myapp.jar 该命令可以启动一个Java应用程序,并设置初始堆内存为256M,最大堆内存为1024M。当程序运行时,我们可以使用下面命令来查看JVM内存使用情况: jstat -gc <pid> <interval> <count> 其,<pid>是JVM进程的进程号,<interval>是采样间隔(以毫秒为单位),<count>是采样次数。 例如,我们可以使用下面命令来查看JVM进程的进程号: ps aux | grep java 然后,使用进程号来查看JVM内存使用情况: jstat -gc <pid> 1000 10 该命令将每秒钟采样一次,共采样10次,然后输出JVM的堆内存使用情况和垃圾回收情况。 除了jstat命令外,我们还可以使用其他工具来查看JVM内存使用情况,例如jmap、jcmd、jstatd等。这些工具的用法和参数不同,请根据需要选择合适的工具。 总之,Linux查看JVM内存使用情况非常方便,只需要用一些简单的命令就可以完成。这对于调试Java程序和优化JVM性能非常有帮助。 ### 回答3: 在Linux系统,我们可以使用多种方式查看Java虚拟机(JVM)内存的使用情况,下面介绍几种常用的方法: 1.使用jstat命令 jstat是Java Development Kit(JDK)自带的一个监控JVM的工具,它能监控JVM内存的使用情况,包括整体内存使用、堆内存使用、非堆内存使用、永久代内存使用等。使用jstat命令,可以获取JVM内存的各项指标,并指导性能调优。以下是查看堆内存和非堆内存使用情况的命令: - 查看堆内存使用情况:jstat -gcutil [pid] [间隔时间] [查看次数] - 查看非堆内存使用情况:jstat -gc [pid] [间隔时间] [查看次数] 其,[pid]是进程ID,[间隔时间]是每隔多少毫秒获取一次内存使用情况,[查看次数]是总共查看的次数。 2.使用jps和jmap命令 jps是JDK的一个命令,用来列出JVM进程ID,也可以查看JVM进程的启动参数。jmap是JDK的一个堆转储工具,可以生成JVM堆的转储快照,以及查询JVM内存使用情况。以下是查看JVM内存使用情况的命令: - 查看JVM进程ID:jps - 生成JVM堆快照:jmap -dump:file=[堆快照文件名] [pid] - 查询JVM内存使用情况:jmap -heap [pid] 其,[pid]是进程ID。 3.使用top命令 top是系统资源监视器,可以通过top命令查看系统所有进程的CPU、内存等资源使用情况。通过top命令可以查看JVM进程的CPU和内存使用情况。以下是查看JVM进程的内存使用情况的命令: - top -p [pid] 其,[pid]是进程ID。 通过以上这些方式,我们可以了解JVM的内存使用情况,方便我们进行性能调优和资源管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值