arthas分析内存溢出
时间: 2023-09-02 09:09:29 浏览: 205
关于内存溢出的
Arthas是一款非常强大的Java诊断工具,它可以帮助我们分析Java应用程序的内存溢出问题。
首先,我们需要在需要分析的应用程序上启用Arthas。可以通过以下命令启动Arthas:
```
java -jar arthas-boot.jar
```
然后,我们需要选择要分析的Java进程,可以使用以下命令列出所有Java进程:
```
ps
```
然后输入要分析的Java进程的编号即可。接着,我们可以使用以下命令来查看Java进程的内存使用情况:
```
jmap -heap <pid>
```
其中,`<pid>`为Java进程的编号。这个命令会打印出Java进程的堆内存和非堆内存的使用情况,可以帮助我们初步判断是否存在内存溢出问题。
如果我们确认存在内存溢出问题,可以使用以下命令来进行进一步的分析:
```
jmap -histo:live <pid> | head -n 20
```
这个命令会输出Java进程中占用内存最多的20个对象,并且这些对象是存活的(即没有被垃圾回收器回收)。通过分析这些对象,我们可以找到内存溢出的原因,并进行相应的调整。
除了jmap命令,Arthas还提供了其他很多强大的命令,可以帮助我们更加详细地分析Java应用程序的性能问题。
阅读全文