• jvm调优


    一般在jdk机器上可以通过命令粗略查看jvm当前参数运行状态,根据状态跟应用性质来调整参数

    jstat -gcutil jvm的pid号----改命令可查看jvm堆内存分配的使用的百分比情况与普通GC,FULLGC从启动到查看为止所执行的次数以及执行时间

    jstat -gacapity jvm的pid好---该命令可查看使用的内存量,与GC时间

    当然详细情况需要通过gc日志来分析

    tomcat开启GC日志记录

    vim bin/catalina.sh  先编辑tomcat启动脚本,加上初始化jvm参数

    JAVA_OPTS='-Xms512m -Xmx4096m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=64m -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -Xloggc:/usr/local/tomcat/logs/tomcat_gc.log'

    重启tomcat

    可以使用windows下的gchisto软件把获取到的日志导进去,查看具体性能分析

    也可以用在线工具https://gceasy.io/把日志包导进去获取性能分析

    根据日志的gc响应时间跟应用类加载对象实例存活时间特点调整jvm参数

    一般,如果对象存活时间短,那么可以设置年轻代的大小大,还有就是如果追求响应时间快,也可设置大内存

    当年轻代内存大时,普通GC的周期会小,年轻代大,年老代就小,如果此时进入年老代的实例多的话,那么就会进行频繁full gc,由于年老代gc一般是用串行回收器的

    所以,full gc的时间就会变长,而在gc的时候,对外是不响应请求的,这样用户体验就不好,还有就是,如果前面还有反向代理的话,反代的后端健康检查失效时间必须要大于gc的时间

  • 相关阅读:
    看过的代码
    ScipyLectures-simple学习笔记
    机器学习1一个月2017/11/24-2017/12/24
    机器学习课程 matlab 练习
    win7 win8 快捷键直接调出任务管理器
    java 关于getProperty()方法中反斜杠问题
    把myeclipse中html/jsp文件的视图调到只看代码
    Win7 server2008 共享文件夹 不输入网络密码
    别用visual editor了,用WindowBuilder
    visual editor ve1.5下载
  • 原文地址:https://www.cnblogs.com/allmdzz/p/11289799.html
Copyright © 2020-2023  润新知