Why is my java process using much more heap space than specified?reduce memory footprint of java virtual machineWhat resource limit is Java encountering on my Solaris server?Performance impact of Win32 + PAE on a JVMCan the JVM(Oracle) run into an OutOfMemory error if the heap size is below the max?Large virtual memory size of ElasticSearch JVMNon-heap memory leak JVMwhen is the jvm heap allocated by the OSHow can I verify the heap size startup arguments for an active JVM that's running as a Windows service and loading JVM params from registry?java.lang.OutOfMemoryError: Java heap spaceJava crash due to native memory allocation map failure, despite n
Asking bank to reduce APR instead of increasing credit limit
The term for the person/group a political party aligns themselves with to appear concerned about the general public
Working in the USA for living expenses only; allowed on VWP?
Future enhancements for the finite element method
How can I grammatically understand "Wir über uns"?
Bringing Food from Hometown for Out-of-Town Interview?
Looking after a wayward brother in mother's will
What does the behaviour of water on the skin of an aircraft in flight tell us?
Is there any Biblical Basis for 400 years of silence between Old and New Testament?
What does it mean by "d-ism of Leibniz" and "dotage of Newton" in simple English?
Creating Fictional Slavic Place Names
Does a component pouch automatically contain components?
How can I offer a test ride while selling a bike?
How do I get a list of only the files (not the directories) from a package?
Beginner's snake game using PyGame
The deliberate use of misleading terminology
Why does the UK have more political parties than the US?
Is there a rule that prohibits us from using 2 possessives in a row?
Strange math syntax in old basic listing
Rotated Position of Integers
Can a helicopter mask itself from Radar?
Is there an evolutionary advantage to having two heads?
Estimate related to the Möbius function
Is the world in Game of Thrones spherical or flat?
Why is my java process using much more heap space than specified?
reduce memory footprint of java virtual machineWhat resource limit is Java encountering on my Solaris server?Performance impact of Win32 + PAE on a JVMCan the JVM(Oracle) run into an OutOfMemory error if the heap size is below the max?Large virtual memory size of ElasticSearch JVMNon-heap memory leak JVMwhen is the jvm heap allocated by the OSHow can I verify the heap size startup arguments for an active JVM that's running as a Windows service and loading JVM params from registry?java.lang.OutOfMemoryError: Java heap spaceJava crash due to native memory allocation map failure, despite n
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I'm running a Java application on Solaris using the -Xmx256M switch. When I connect via JMX, the JVM tells me the application is using about 50Mb of heap, and correctly states the maximum heap size is around 250Mb.
However, Solaris is telling me a very different story. When running pmap, for example, I get:
~ > pmap -S 10124 | grep heap
0002C000 3920 3920 rwx-- [ heap ]
00400000 815104 815104 rwx-- [ heap ]
Showing an incredible 800Mb of memory being used for heap space.
ps confirms the memory usage:
ps -eo vsz,rss,pid,args | sort -n
939368 925576 10124 /apps/../java -Xmx256M xxxx
I've read https://plumbr.eu/blog/why-does-my-java-process-consume-more-memory-than-xmx, but the article describes JVM using memory other than heap (i.e. stack, native libraries and threads) - but in my case, the JVM is actually using much more heap than specified.
My java version is:
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)
To add to the mystery, I have other Java applications running on the same box, using the same JVM with the same settings, that behave perfectly fine. What makes this application "special" is that it connects to an external third party application (RET LBN, if that helps). It does not run any JNI or native code - so why is the third party library not respecting the JVM's startup parameters?
I'm at my wits end - any help or pointers will be greatly appreciated.
java solaris memory-usage
add a comment |
I'm running a Java application on Solaris using the -Xmx256M switch. When I connect via JMX, the JVM tells me the application is using about 50Mb of heap, and correctly states the maximum heap size is around 250Mb.
However, Solaris is telling me a very different story. When running pmap, for example, I get:
~ > pmap -S 10124 | grep heap
0002C000 3920 3920 rwx-- [ heap ]
00400000 815104 815104 rwx-- [ heap ]
Showing an incredible 800Mb of memory being used for heap space.
ps confirms the memory usage:
ps -eo vsz,rss,pid,args | sort -n
939368 925576 10124 /apps/../java -Xmx256M xxxx
I've read https://plumbr.eu/blog/why-does-my-java-process-consume-more-memory-than-xmx, but the article describes JVM using memory other than heap (i.e. stack, native libraries and threads) - but in my case, the JVM is actually using much more heap than specified.
My java version is:
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)
To add to the mystery, I have other Java applications running on the same box, using the same JVM with the same settings, that behave perfectly fine. What makes this application "special" is that it connects to an external third party application (RET LBN, if that helps). It does not run any JNI or native code - so why is the third party library not respecting the JVM's startup parameters?
I'm at my wits end - any help or pointers will be greatly appreciated.
java solaris memory-usage
add a comment |
I'm running a Java application on Solaris using the -Xmx256M switch. When I connect via JMX, the JVM tells me the application is using about 50Mb of heap, and correctly states the maximum heap size is around 250Mb.
However, Solaris is telling me a very different story. When running pmap, for example, I get:
~ > pmap -S 10124 | grep heap
0002C000 3920 3920 rwx-- [ heap ]
00400000 815104 815104 rwx-- [ heap ]
Showing an incredible 800Mb of memory being used for heap space.
ps confirms the memory usage:
ps -eo vsz,rss,pid,args | sort -n
939368 925576 10124 /apps/../java -Xmx256M xxxx
I've read https://plumbr.eu/blog/why-does-my-java-process-consume-more-memory-than-xmx, but the article describes JVM using memory other than heap (i.e. stack, native libraries and threads) - but in my case, the JVM is actually using much more heap than specified.
My java version is:
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)
To add to the mystery, I have other Java applications running on the same box, using the same JVM with the same settings, that behave perfectly fine. What makes this application "special" is that it connects to an external third party application (RET LBN, if that helps). It does not run any JNI or native code - so why is the third party library not respecting the JVM's startup parameters?
I'm at my wits end - any help or pointers will be greatly appreciated.
java solaris memory-usage
I'm running a Java application on Solaris using the -Xmx256M switch. When I connect via JMX, the JVM tells me the application is using about 50Mb of heap, and correctly states the maximum heap size is around 250Mb.
However, Solaris is telling me a very different story. When running pmap, for example, I get:
~ > pmap -S 10124 | grep heap
0002C000 3920 3920 rwx-- [ heap ]
00400000 815104 815104 rwx-- [ heap ]
Showing an incredible 800Mb of memory being used for heap space.
ps confirms the memory usage:
ps -eo vsz,rss,pid,args | sort -n
939368 925576 10124 /apps/../java -Xmx256M xxxx
I've read https://plumbr.eu/blog/why-does-my-java-process-consume-more-memory-than-xmx, but the article describes JVM using memory other than heap (i.e. stack, native libraries and threads) - but in my case, the JVM is actually using much more heap than specified.
My java version is:
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)
To add to the mystery, I have other Java applications running on the same box, using the same JVM with the same settings, that behave perfectly fine. What makes this application "special" is that it connects to an external third party application (RET LBN, if that helps). It does not run any JNI or native code - so why is the third party library not respecting the JVM's startup parameters?
I'm at my wits end - any help or pointers will be greatly appreciated.
java solaris memory-usage
java solaris memory-usage
asked Feb 6 '15 at 10:20
notdazedbutconfusednotdazedbutconfused
23114
23114
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The Java heap is a block of memory that holds java objects.
"pmap" shows the Operating System process heap. This is the memory used to run the java process. This includes all the java code, plus all the C code that makes up the java run time environment.
To show the java heap try Memory tab of jconsole, or jmap or jstat.
Thanks Sean. I have done exactly that, and jconsole reports the maximum heap size to be 256Mb as expected. The question is really, why is the OS process using so much additional heap space? Any ideas on how I can find this out?
– notdazedbutconfused
Feb 10 '15 at 17:11
I would expect rss to be much closer to the Xmx setting. . Look at the output of pmap PID. You might see a .so file using a lot of memory. If it's making standard C library calls it might be more difficult to spot than if it's calling a custom shared library.
– Sean McEligot
Mar 18 '15 at 13:52
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f665503%2fwhy-is-my-java-process-using-much-more-heap-space-than-specified%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The Java heap is a block of memory that holds java objects.
"pmap" shows the Operating System process heap. This is the memory used to run the java process. This includes all the java code, plus all the C code that makes up the java run time environment.
To show the java heap try Memory tab of jconsole, or jmap or jstat.
Thanks Sean. I have done exactly that, and jconsole reports the maximum heap size to be 256Mb as expected. The question is really, why is the OS process using so much additional heap space? Any ideas on how I can find this out?
– notdazedbutconfused
Feb 10 '15 at 17:11
I would expect rss to be much closer to the Xmx setting. . Look at the output of pmap PID. You might see a .so file using a lot of memory. If it's making standard C library calls it might be more difficult to spot than if it's calling a custom shared library.
– Sean McEligot
Mar 18 '15 at 13:52
add a comment |
The Java heap is a block of memory that holds java objects.
"pmap" shows the Operating System process heap. This is the memory used to run the java process. This includes all the java code, plus all the C code that makes up the java run time environment.
To show the java heap try Memory tab of jconsole, or jmap or jstat.
Thanks Sean. I have done exactly that, and jconsole reports the maximum heap size to be 256Mb as expected. The question is really, why is the OS process using so much additional heap space? Any ideas on how I can find this out?
– notdazedbutconfused
Feb 10 '15 at 17:11
I would expect rss to be much closer to the Xmx setting. . Look at the output of pmap PID. You might see a .so file using a lot of memory. If it's making standard C library calls it might be more difficult to spot than if it's calling a custom shared library.
– Sean McEligot
Mar 18 '15 at 13:52
add a comment |
The Java heap is a block of memory that holds java objects.
"pmap" shows the Operating System process heap. This is the memory used to run the java process. This includes all the java code, plus all the C code that makes up the java run time environment.
To show the java heap try Memory tab of jconsole, or jmap or jstat.
The Java heap is a block of memory that holds java objects.
"pmap" shows the Operating System process heap. This is the memory used to run the java process. This includes all the java code, plus all the C code that makes up the java run time environment.
To show the java heap try Memory tab of jconsole, or jmap or jstat.
answered Feb 10 '15 at 16:25
Sean McEligotSean McEligot
112
112
Thanks Sean. I have done exactly that, and jconsole reports the maximum heap size to be 256Mb as expected. The question is really, why is the OS process using so much additional heap space? Any ideas on how I can find this out?
– notdazedbutconfused
Feb 10 '15 at 17:11
I would expect rss to be much closer to the Xmx setting. . Look at the output of pmap PID. You might see a .so file using a lot of memory. If it's making standard C library calls it might be more difficult to spot than if it's calling a custom shared library.
– Sean McEligot
Mar 18 '15 at 13:52
add a comment |
Thanks Sean. I have done exactly that, and jconsole reports the maximum heap size to be 256Mb as expected. The question is really, why is the OS process using so much additional heap space? Any ideas on how I can find this out?
– notdazedbutconfused
Feb 10 '15 at 17:11
I would expect rss to be much closer to the Xmx setting. . Look at the output of pmap PID. You might see a .so file using a lot of memory. If it's making standard C library calls it might be more difficult to spot than if it's calling a custom shared library.
– Sean McEligot
Mar 18 '15 at 13:52
Thanks Sean. I have done exactly that, and jconsole reports the maximum heap size to be 256Mb as expected. The question is really, why is the OS process using so much additional heap space? Any ideas on how I can find this out?
– notdazedbutconfused
Feb 10 '15 at 17:11
Thanks Sean. I have done exactly that, and jconsole reports the maximum heap size to be 256Mb as expected. The question is really, why is the OS process using so much additional heap space? Any ideas on how I can find this out?
– notdazedbutconfused
Feb 10 '15 at 17:11
I would expect rss to be much closer to the Xmx setting. . Look at the output of pmap PID. You might see a .so file using a lot of memory. If it's making standard C library calls it might be more difficult to spot than if it's calling a custom shared library.
– Sean McEligot
Mar 18 '15 at 13:52
I would expect rss to be much closer to the Xmx setting. . Look at the output of pmap PID. You might see a .so file using a lot of memory. If it's making standard C library calls it might be more difficult to spot than if it's calling a custom shared library.
– Sean McEligot
Mar 18 '15 at 13:52
add a comment |
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f665503%2fwhy-is-my-java-process-using-much-more-heap-space-than-specified%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown