java性能调优
jmx
jmx(Java Management Extensions,即Java管理扩展)
开启远程支持
注意服务器的端口防火墙
需要在服务器上添加JVM参数来开启
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=localhost
jstatd
安全策略文件jstatd.policy
grant codebase"file:${java.home}/../lib/tools.jar"{
permission java.security.AllPermission;
};
开启远程支持
jstatd -J-Djava.security.policy=jstatd.policy -J-Djava.rmi.server.hostname=localhost -p1099 >> /tmp/jstatd.log 2>&1 &
jvisualvm
需要
jmx
和jstatd
同时开启支持
jvisualvm是jdk自提供的资源监控和查看工具,可以通过命令jvisualvm
来启动。
如果是IDEA开发环境,可以安装VisualVM Launcher
插件来集成管理。
监视
展示系统资源使用情况
线程
展示线程的运行的情况
常见线程状态:
- Running(运行),运行中的线程
- Sleeping(休眠),调用了
Thread.sleep
之后的状态 - Wait(等待),调用了
wait()
之后阻塞的等待状态 - Monitor(监视),线程想执行一段synchronized中的代码,但是发现已经有其它线程正在执行,自己被block了,只能无奈地等待
抽样器
分析CPU和内存的使用情况
参考
sadfasdf
- 性能优化工具(八)-MAT https://www.eclipse.org/mat/downloads.php http://www.dataguru.cn/article-14525-1.html https://blog.csdn.net/Jin_Kwok/article/details/80326088 https://www.cnblogs.com/liuchuanfeng/p/8484641.html
nmon https://www.cnblogs.com/qgc1995/p/7523786.html http://www.51testing.com/html/87/300987-824376.html
FULL GC观察
性能分析之-- JAVA Thread Dump 分析综述 https://blog.csdn.net/rachel_luo/article/details/8920596
下单接口调优实战,性能提高10倍 https://blog.csdn.net/linsongbin1/article/details/82656887
一次系统线程数飚高无法下降的排查过程 https://www.jianshu.com/p/c54de72e4ed7
来源:oschina
链接:https://my.oschina.net/zhenguozhao/blog/3158383