java服务申请内存不足

java服务申请内存不足,第1张

服务器上物理内存太小,大部分都是应为程序太多,内存吃紧,而给jvm分配的内存太大,导致java的内存不够,(java程序启动需要的内存,linux不能给),最好调整java程序jvm内存吧(测试环境下)。

首先java内存可以大体分为堆内存和栈内存。一般收的内存使用过大是指堆内存使用过大。一般分步骤分析。

现在内存过大到底到何种程度。是否引起了GC或者FUll GC。是否影响了正常工作。

1.明白现在内存有多大,可以通过工具看,和使用的内存比例。如果项目中需要缓存很多缓存,可以理解使用是合理的。如果服务器内存够大,应用可以适当调整XMX xms参数进行JVM调整。

2.如果系统中没有使用缓存,和大对象内存过高,那就考虑是否有内存泄漏。可以使用jmap等jVM调优工具进行对象分析。然后定位过高原因修改代码。

jmap -dump:format=b,file=文件名 [pid]

dump当前系统,根据dump文件我们可以分析当前系统中存在的内存问题。

分析dump文件的工具很多,JDK自带的Jhat,Eclipse也有相关的插件。

我使用的是Eclipse Memory Analyzer,功能很强大,能够生成各种报表,另外可以在不同的时间生成不同的dump,然后通过工具分析两个dump的内存变化。

大家专注我,我写了好多JVM 原理和调优的文章。

文版权归是三僡然所有,转载请标明出处。欢迎转载,欢迎评论,欢迎分享。如果你有文章想分享可以联系我。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/613524.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-13
下一篇2023-07-13

发表评论

登录后才能评论

评论列表(0条)

    保存