[英]Java app runs out of heap space at about 1.4GB in a 64 bit OS with -Xmx option set to 4 GB
[英]My app has 128MB heap but uses 1.6GB of real RAM. How can I find out where the 1.4GB go to?
在linux平台上,jboss上的My java应用程序具有128MB的堆,但使用1.6GB的实际RAM。 如何找到1.4GB的存储空间?
PID USER PR NI VIRT RES SHR S %CPU %MEM CODE DATA TIME+ COMMAND
1379 root 16 0 9.7g 1.6g 1980 S 0.7 1.3 36 9.7g 0:11.03 java
谢谢,
埃姆雷
我不确定您如何找到答案。 但是我的理论是,您的应用程序已将一个巨大的文件映射为MemoryMappedBuffer
。 您问题中的统计数据表明您正在使用9.7 GB的地址空间。
您的“我的应用程序具有128MB堆”是什么意思,您是使用-Xmx 128M启动JBoss吗?
无论如何,堆大小并不决定进程使用的内存量,JVM将为其他事物分配内存,包括为每个线程分配一个堆栈。
但是在您的情况下,可能不是原因,因为1.4GB似乎很大。 您在应用程序中做某些特别的事情吗?
Emre He,根据您的设置,您仅设置了perm gen的开始/最大大小。 尝试将以下参数添加到您的JVM:-Xms128m -Xmx128m
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.