jvm调优的一些命令
jvm调优
jps命令:可以查看当前所有运行的java程序进程号
top: 命令可以查看当前计算机所有的进程的cpu和内存的占用情况
jstack+进程号:可以查看该进程所有的线程的情况
top -Hp +进程号:可以查看该进程所有的线程的占用cpu的情况,就能知道哪个线程占用的cpu比较多
jmap - histo 进程号| head -20,查找每种类分别有多少对象产生,前20个类的情况
1.重启
调大内存,让本来一周就会出现问题的场景,一个月才出现问题。出现问题的时候直接重启就好。
2.小程序产生oom的问题定位过程
a.首先使用jps查看所有的java进程
b.然后使用top命令看看cpu和内存的占用情况,看看有没有java进程占用了比较多的cpu和内存
c.使用top -Hp 进程号 看看该进程所有线程的内存占用情况,找到内存占用较大的线程的pid,然后转为16进制
d,jstack 进程号|grep 16进制pid 锁定线程堆栈信息
使用dump宕机文件配置配置宕机文件参数当oom的时候自动产生宕机文件:
-XX:+HeapDumpOnOutOfMemoryError
宕机的时候产生宕机文件xxx.hprof文件,使用命令 jhat xxxx.hprof 可以在linux上面产生一个7000端口的服务, 在windows上面直接访问,就可以查看堆内存情况,哪些对象创建的比较多。