-
jstat
jstat -gcutil pid 20
image.png
20毫秒监控一次17966进程的内存使用情况,E代表新生代。O代表老年代,FGC是全局回收的次数,
O不能一直增加,E回收的时候关注下拉近回收的速度 - 内存监控
a. 检测程序是否存在内存泄露问题,主要通过稳定性测试时观察内存占用情况,如果内存增加比较明显(特别是计算内存)则需要对进程进行分析
查看某进程内存占用的情况(内存泄露检测)
Ps u 显示面向用户的输出。包括user,pid,%cpu,%mem,sz,rss,tty,stat,stime,time,command
Ps v显示
Ps x显示没有终端的进程除了有一个控制终端的进程。
使用方法:Ps v 进程号
其中与内存相关的值:
RSS-进程实内存的大小,用KB表示;
SIZE-进程数据节的虚拟大小,单位1KB。动态分配内存会引起SIZE的变化。
SSIZ-内核堆栈大小。对于多线程进程,该值总为零。
TRS-文本的驻留集大小。
TSIZ-文本(共享内存)映像的大小。
重点关注RSS、SIZE
若是进程稳定运行一段时间后,进程的RSS和SIZE仍持续不停的增长,说明进程存在内存泄露的问题。
b. 查看进程所占用的内存详细信息 jmap –heap 进程号 - 分析java内容泄漏:
a、jmap -dump:format=b,file=heap.bin pid
b、用MAT工具进行分析
网友评论