--- title: JVM性能 --- ###### tags: `JAVA` # JVM性能調教 #### 查看java的安装路径: $ which java /usr/bin/java 说明此路径并未找到java的真是路径,于是用下面的命令 使用 /usr/libexec/java_home -V 来获取java的真是路径。直接在终端输入如下内容: $ /usr/libexec/java_home -V #### 查看java進程 jps #### 查看java資源使用 (線程數、CPU、Memory) 1. jconsole 2. linux "top"指令 #### 查看heap堆積、cpu佔用 yourkit、JProfiler ### yourkit http://xurui.pro/2018/09/26/YourKit-Java%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E7%9A%84%E5%BA%94%E7%94%A8/ ### 匯總 1. cmd查看jvm狀況: 一般对于线上系统,使用 jstat 工具足以分析出JVM的运行情况,如果有GC日志,也可以使用 GCeasy 快速分析JVM的运行情况。 遇到CPU负载过高,可以使用 top + pidstat 找出负载高的线程,或者直接使用 jstat 观察是不是在频繁 FullGC。 遇到死锁、OOM 等问题,可以用 jstack 把线程栈dump下来分析,还可以结合 FastThread 在线工具,分析线程栈、哪些线程阻塞等待等。 遇到OOM问题,使用 jmap 把堆转储快照dump下来,用MAT来分析创建了哪些大量的对象。 2. profiler 查找性能瓶頸: 目前线上可以分析应用性能的工具有很多,pinpoint、SkyWalking等,可以比较直观的分析分布式请求,定位性能问题,另外基于ELK的Grafana也便于监控机器的健康状况,但是这些工具都只支持线上环境,在本地开发阶段无法有效利用这些工具,那么我们如何在开发阶段定位性能问题?打印log记录时间吗?还是靠肉眼看代码?这些方式真对一些长事务、分布式调用、批量操作的场景就不适用了,而YourKit 可以帮助我们做到这一点。 http://xurui.pro/2018/09/26/YourKit-Java%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E7%9A%84%E5%BA%94%E7%94%A8/ 參考文章: 1. java cmd查看jvm狀況 2. #### 問題 1. idea設置jdk以後,輸入java -version 以及 which java看到的環境都是新的,但是在mac環境變量找不到被設置的地方。 已經依照系統加載順序找過etc/, ~/ 下面的 的bash, zsh, profile等處了
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up