看过了JVM的内存模型,自己总结一下JVM的优化过程。
1.首先要分析情况,关注三大块的情况:CPU 内存和IO(磁盘+网络)。
jstack查看线程CPU的使用情况,内存使用jmap来查看内存使用情况,iostat来查看磁盘读写情况(IOTOP也可以,但需要安装)。
然后使用jinfo来打印下虚拟机的参数配置。
2.具体问题分析
CASE 1 如果是CPU高使用率的问题的话
1. 用命令 “ps -ef | grep APP” 找出应用的进程 id,比如 id为27427。
2. 找出耗CPU的线程,在Linux系统下用命令: “ top –H –p pid ”, pid 就是前面找出来的应用进程 ID即27427 。这个命令会显示出当前占用CPU高的线程。
3.dump 出进程的所有线程栈,用命令 “./jstack -F -m -l 84703 > 84703.stack”, 84703 是
pid。
4.将服务器上的.stack文件用文本编辑器分析是哪段代码造成的问题。
CASE 2 如果是内存使用率高的问题
未完待续
本文分享了JVM性能调优的方法,包括如何通过jstack、jmap等工具监测CPU和内存使用情况,并针对不同场景提供了具体的分析步骤。

被折叠的 条评论
为什么被折叠?



