如何精准定位并解决Java应用内存占用过高的根本原因?
- 内容介绍
- 文章标签
- 相关推荐
本文共计659个文字,预计阅读时间需要3分钟。
故障:收到服务器报警,内存使用率超过80%。
检查:
1.使用dstat和top查看内存使用情况。
2.使用dstat检测内存占用最高的应用。
3.使用dstat发现内存占用最高的应用是Java应用,占用了2232M内存。
4.这台服务器运行了几个Java应用,导致内存使用过高。
故障:收到服务器报警,内存使用率超过80%
1.查看
使用dstat和top查看内存使用最高的应用
使用dstat
查到内存占用最高的是java应用,使用2253M内存,但是这台服务器跑了好几个java,具体哪个进程使用top看下资源情况
使用top
可以看到java应用整体内存使用率超过了70%,其中pid为16494的进程 一个应用占了28.7的内存
2.定位线程问题
使用ps查看16494的线程情况
命令:ps p 16494 -L -o pcpu,pmem,pid,tid,time,tname,cmd
看到16494这个pid的应用产生了很多线程。
本文共计659个文字,预计阅读时间需要3分钟。
故障:收到服务器报警,内存使用率超过80%。
检查:
1.使用dstat和top查看内存使用情况。
2.使用dstat检测内存占用最高的应用。
3.使用dstat发现内存占用最高的应用是Java应用,占用了2232M内存。
4.这台服务器运行了几个Java应用,导致内存使用过高。
故障:收到服务器报警,内存使用率超过80%
1.查看
使用dstat和top查看内存使用最高的应用
使用dstat
查到内存占用最高的是java应用,使用2253M内存,但是这台服务器跑了好几个java,具体哪个进程使用top看下资源情况
使用top
可以看到java应用整体内存使用率超过了70%,其中pid为16494的进程 一个应用占了28.7的内存
2.定位线程问题
使用ps查看16494的线程情况
命令:ps p 16494 -L -o pcpu,pmem,pid,tid,time,tname,cmd
看到16494这个pid的应用产生了很多线程。

