Jump to content
Excelsior Forums
Sign in to follow this  
MMalhado

Adaptive heap size and Windows "Standby" memory

Recommended Posts

I have built my webapp using a Excelsior JET 8 32bit Tomcat project and configured it to use an Adaptive heap size policy.

My test setup is running Windows server 2012 R2.

while performing long running height request throughput performance tests, I observed that during some periods of operation my application would have it's response capacity greatly degraded.

Using a java profiler, I could see that during these periods the JVM was Garbage Collection aggressively and that the heap size was "stuck" at a certain threshold.

This behavior led me to believe that I might be running out of available physical memory, and that the Excelcior JET's Adaptive policy might be avoiding requesting more heap space from the OS.

Using task manager I could see that around 1.5GB were still available.

In Windows Resource monitor I could see that most of these 1.5GB were marked as "Standby" memory and that only about 15MB were marked as free.

As soon as I ran the System internals RAMMap tool and requested for the "Standby List" to be emptied, the JVM immediately reserved some 500MB additional memory and the GC activity was drastically reduced.

These experiments lead me to believe that Excelsior only refers to the "Free" component of available physical memory when deciding if more heap space can/should be allocated. Is this interpretation correct?

I would assume that all the available physical memory would be used as a reference for GC and heap size management.

Share this post


Link to post
Share on other sites

I have built my webapp using a Excelsior JET 8 32bit Tomcat project and configured it to use an Adaptive heap size policy.

My test setup is running Windows server 2012 R2.

while performing long running height request throughput performance tests, I observed that during some periods of operation my application would have it's response capacity greatly degraded.

Using a java profiler, I could see that during these periods the JVM was Garbage Collection aggressively and that the heap size was "stuck" at a certain threshold.

This behavior led me to believe that I might be running out of available physical memory, and that the Excelcior JET's Adaptive policy might be avoiding requesting more heap space from the OS.

Using task manager I could see that around 1.5GB were still available.

In Windows Resource monitor I could see that most of these 1.5GB were marked as "Standby" memory and that only about 15MB were marked as free.

As soon as I ran the System internals RAMMap tool and requested for the "Standby List" to be emptied, the JVM immediately reserved some 500MB additional memory and the GC activity was drastically reduced.

These experiments lead me to believe that Excelsior only refers to the "Free" component of available physical memory when deciding if more heap space can/should be allocated. Is this interpretation correct?

I would assume that all the available physical memory would be used as a reference for GC and heap size management.

Hello,

To enable using of "standby" memory in JET-compiled executables, you should specify -Djet.gc.sys.cache.care.level property.

Please run the following commands:

set JETVMPROP=-Djet.gc.sys.cache.care.level=2
<your_application>.exe

Please let us know the results.

Share this post


Link to post
Share on other sites

Hello,

To enable using of "standby" memory in JET-compiled executables, you should specify -Djet.gc.sys.cache.care.level property.

Please run the following commands:

set JETVMPROP=-Djet.gc.sys.cache.care.level=2
<your_application>.exe

Please let us know the results.

Thanks dbg!

Apparently that define did the trick!

So far I have not observed the same behavior.

I'll let you know if the situation changes.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×