zoukankan      html  css  js  c++  java
  • JVM性能调优

    http://blog.csdn.net/ning109314/article/details/10411495/
    http://www.mamicode.com/info-detail-1028149.html
    http://uule.iteye.com/blog/2114697

    http://blog.csdn.net/llbupt/article/details/6661183

    http://blog.csdn.net/hengyunabc/article/details/24924843

    http://blog.csdn.net/zhoutao198712/article/details/7783038

    http://blog.csdn.net/fenglibing/article/details/6298326(mat)

    http://www.blogjava.net/rosen/archive/2010/06/13/323522.html(mat)

    jmap -F -dump:format=b,file=j.bin 6664

    jstat -gcutil pid

    开启jmx连接jvm  

    linux下tomcat版本7.0

    jdk版本1.8

    开启tomcat的jmx,远程jvm查看运行情况

    找到tomcat 的bin目录。

    打开catalina.sh文件。

    找到242行左右。

    # ----- Execute The Requested Command -----------------------------------------

    在此添加如下内容:

    123.56.**.**为主机IP地址,端口为9999.

    [ $1 != "stop" ] && JAVA_OPTS="-Dcom.sun.management.jmxremote

    -Djava.rmi.server.hostname=123.56.**.**

    -Dcom.sun.management.jmxremote.port=9999

    -Dcom.sun.management.jmxremote.ssl=false

    -Dcom.sun.management.jmxremote.authenticate=false $JAVA_OPTS"
    export JAVA_OPTS

    重新启动tomcat后,如果9999端口启动了。

    使用jconsle,或jvisual来连接。

    设置jvm大小:

    内存16G。

    JAVA_OPTS="-Xms1024m -Xmx2048m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"
    xms是heap大小的初始值1G

    xmx是heap最大值为4G

    xms最好=xmx。

    xss表示一个线程的大小,jdk5后默认为1m。太大,产生不了过多的线程数。

    permSize是永久区的大小,加载class类等附加信息。(jdk1.8不支持,加上也行,可以通过,由native memory inside JVM代替)
    PermSize不可大于Xmx。

    元空间(Metaspace)

    jdk1.8使用参数MaxMetaspaceSize(-XX:MaxMetaspaceSize=256m)

    MaxMetaspaceSize用于限制本地内存分配给类元数据的大小。如果没有指定这个参数,元空间会在运行时根据需要动态调整。

    -XX:NewSize=n:设置年轻代大小 
    -XX:NewRatio=n:设置年轻代和年老代的比值.如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 
    -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值.注意Survivor区有两个.如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5 .

    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=mem.dump
    heap出现溢出时,保留日志信息,使用jhat分析。

    以下为jmx服务添加验证

    http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html


    chmod 600 jmxremote.password(cp jmxremote.password.template --> jmxremote.password)
    chmod 600 jmxremote.access

    (有可能报错)

    -Dcom.sun.management.jmxremote.authenticate=true

    -Dcom.sun.management.jmxremote.access.file=FilePath

    -Dcom.sun.management.jmxremote.password.file=FilePath

    jmxremote.access,jmxremote.password文件在JDK安装目录/jre/lib/management/*

    jmxremote.access,jmxremote.password分别把最后两行#去掉。

  • 相关阅读:
    何为优秀的前端?
    CSS清除浮动的三个方法
    CSS3 速查手册
    高性能JavaScript
    chrome开发者工具使用
    AndroidJetpack数据处理之数据库Room和懒加载Paging
    AndroidJetpack Fragment之Navigation和ViewPager2
    第一行代码之菜单
    Day1
    1.16 24点游戏
  • 原文地址:https://www.cnblogs.com/nsw2018/p/5956844.html
Copyright © 2011-2022 走看看