jvm常用命令

  • 初始堆大小60M-Xms60m 最大堆60M-Xmx60m

  • 新生代中Eden区域和Survivor区域(From幸存区和To幸存区)的比例为8-XX:SurvivorRatio=8

  • -Xss10m设置栈大小

  • -server开启 server 模式,逃逸分析需要 server 模式的支持

  • -XX:+DoEscapeAnalysis 开启逃逸分析

  • -XX:+EliminateAllocations 开启标量替换

  • 在发生OOM的时候,自动dump一份内存映像文件,添加jvm参数-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\error.hprof

  • jmap命令 手动dump一份内存映像文件jmap -dump:live,format=b,file=D:\error.hprof pid

    • live代表保存还存活的对象,
    • format=b表示用标准格式输出,方便其他工具查看,
    • pid是进程id
  • jstack 命令,查看线程信息jstack -l pid

    • -l表示显示锁信息,
    • -F表示强制输出
  • jstat 命令,jstat -gc -t -h2 9500 interval count,

    • -gc查看GC相关内容,
    • -t在结果前加上程序运行时间,
    • -h表示打印几次后添加标题头,需要把数字和h写在一起,
    • interval表示多少毫秒打印一次,
    • count表示打印几次后结束,
    • 例如 jstat -gc -t -h2 9500 1000 5
  • jcmd 可以替换以上几乎所有命令,jcmd pid help 可以查看当前进程所有可执行命令 ,例如 jcmd 8543 Thread.print 查看线程信息

posted @ 2021-03-04 14:17  rm-rf*  阅读(87)  评论(0编辑  收藏  举报