Jvisualvm Tomcat 性能调优

来源:互联网 发布:程序和算法 编辑:程序博客网 时间:2024/06/18 11:49
启动 jvisualvm
{java}/bin/jvisualvm.exe



监控远程tomcat
修改 {tomcat}/bin/catalina.sh ,新增如下内容:防火墙也要放开配置的端口

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.1.152 -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "

创建jre jmx 认证文件
cp {java}/jre/lib/management/jmxremote.password.template jmxremote.password

赋权限
chmod +w jmxremote.password

配置用户,密码可根据修改
vi jmxremote.password

放开
monitorRole QED
controlRole R&D

重启tomcat


jvisualvm 创建远程连接












内存调优

堆不够,调整tomcat 的 jvm 参数 -Xms512m -Xmx512m
备注: 选个合理的值,设置成相等,减少gc带来的性能开销
Xms : 初始堆大小
Xmx : 最大堆大小

PermGen 不够,调整tomcat 的 jvm参数 -XX:PermSize=64M -XX:MaxPermSize=128M
备注:设置合适的值,避免tomcat报 PermGen 内存溢出,导致频繁gc 造成cpu 假死。900%
XX:PermSize: 持久代大小
XX:MaxPermSize:最大持久代大小

最方便的方法,使用 jconsole.exe 监控一段时间,根据情况 设置。

测试环境打印gc日志,
tomcat jvm 参数增加: -XX:+PrintGC -XX:+PrintGCDateStamps -Xloggc:../logs/gc.log


优化原则:
1)GC 频率尽可能的少,一直GC的时间尽可能的短。(GC时,整个程序会卡住不可用)
2)微调参数,观察GC日志。


0 0
原创粉丝点击