JVM内存占用是否有上限?
12G内存,生成100w的数据测试一个东西,发现内存占用上升到10G后就不上升了,而且console里显示的数据生成速度明显变慢了,CPU占用率还是100%。这是什么原因,为什么还有2G空闲内存占用率却不上升了,是因为触发了GC吗?不懂,请指教!
回答:
JVM 是有限制的初始时候默认是物理内存的最小1/64, 默认最大是1/4, 不过可以自己设置, 操作系统与JVM也不允许将内存占满
- 最小
-Xms64M
- 最大
-Xmx128M
可以在这里面修改:
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
回答:
查看Java相关进程
➜ ~ jps23008 Launcher
26130 Jps
19449 Launcher
14539
19228 GeneratorApplication
12909
查询相关信息
➜ ~ jinfo 19228VM Flags:
-XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:CICompilerCount=4 -XX:InitialHeapSize=268435456 -XX:+ManagementServer -XX:MaxHeapSize=4294967296 -XX:MaxNewSize=1431306240 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=89128960 -XX:OldSize=179306496 -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC
即可查询到堆内存限制信息。
一般启动Java项目时,会设置Xmx Xms
来指定堆内存大小。一般会小于机器最大内存。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
以上是 JVM内存占用是否有上限? 的全部内容, 来源链接: utcz.com/p/945060.html