性能问答>【赏金25元】JVM 进程RSS占用高,又不在NMT范围>
5回复

【赏金25元】JVM 进程RSS占用高,又不在NMT范围



pmp里面 有10多个RSS是64M的块,而且不在NMT统计范围内

image.png

dump内存

通过dd dump出来地址对应的内存,也看不出来里面存的啥内容。里面内容比较规律:一点内容,空白、一点内容、空白…如图所示。
image.png

请教,这下面该怎么分析?
写一个malloc的hook函数,打印分配的地址、线程ID,然后和jstack的输出对比,查看是那个线程干啥分配的?

1、这个是linux下malloc 64M的问题?
我看其他的64M也是引起虚拟内存偏高,并不会引起RSS。

2、如果是64M的问题,看之前的文章说:
arena 的数量限制在 32 位系统上是 2 * CPU 核心数,64 位系统上是 8 * CPU 核心数,当然我们也可以使用 MALLOC_ARENA_MAX (Linux 环境变量,详情可以查看 mallopt(3)[1])来控制。查看发现运行 JVM 进程的环境 CPU 信息(物理 CPU 核数):Core(s) per socket: 64 。
备注:这个机器是8核的。

754 阅读
请先登录,查看5条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步