这里写自定义目录标题
第一种: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
第三种: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参数