linux进程内存与 xmx,进程物理内存远大于Xmx的问题分析

本文探讨了Linux进程中物理内存(Res/Rss)大于设置的Xmx值的现象,分析了Xmx仅包含新生代和老生代最大值,不包括其他内存部分。解释了Linux内存管理和虚拟内存映射,并提供了分析内存使用情况的工具及方法,如DirectByteBuffer内存泄露检查,以及如何定位和解决因大量分配堆外内存导致的OOM问题。
摘要由CSDN通过智能技术生成

问题描述

最近经常被问到一个问题,”为什么我们系统进程占用的物理内存(Res/Rss)会远远大于设置的Xmx值”,比如Xmx设置1.7G,但是top看到的Res的值却达到了3.0G,随着进程的运行,Res的值还在递增,直到达到某个值,被OS当做bad process直接被kill掉了。

top - 16:57:47 up 73 days, 4:12, 8 users, load average: 6.78, 9.68, 13.31

Tasks: 130 total, 1 running, 123 sleeping, 6 stopped, 0 zombie

Cpu(s): 89.9%us, 5.6%sy, 0.0%ni, 2.0%id, 0.7%wa, 0.7%hi, 1.2%si, 0.0%st

...

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

22753 admin 20 0 4252m 3.0g 17m S 192.8 52.7 151:47.59 /opt/app/java/bin/java -server -Xms1700m -Xmx1700m -Xmn680m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+UseStringCache -XX:+

40 root 20 0 0 0 0 D 0.3 0.0 5:53.07 [kswapd0]

物理内存大于Xmx可能吗

先说下Xmx,这个vm配置只包括我们熟悉的新生代和老生代的最大值,不包括持久代,也不包括CodeCache,还有我们常听说的堆外内存从名字上一看也知道没有包括在内,当然还有其他内存也不会算在内等,因此理论上我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值