Jump to content
Excelsior Forums


  • Content count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About MMalhado

  • Rank
  1. MMalhado

    Adaptive heap size and Windows "Standby" memory

    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.
  2. 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.
  3. MMalhado

    Change maximum heap at runtime

    I'm running a Excelsior JET 32bit 8.0 built Tomcat 7 application on a Windows server 2008 R2 My application has been built with the option -Djet.gc.heaplimit:1500m, but in this particular installation this doesn't seem to be enough and I would like to change this setting to 0 ('Adaptive') at runtime. From the documentation, my understanding is that a way to do this would be to use the command: SET JETVMPROP=-Djet.gc.heaplimit=0 followed by my application executable command. The problem I'm having trouble is understanding if this change is actually having effect. When I try to use extreme values like 50m or 5000m I see no difference in the application's memory footprint, nor does it refuses to launch, like I can observe when running the regular 32bit Tomcat 7 with a too height value for --JvmMx (like 2000m). As an additional question, what would roughly be the expected maximum heap size in this system, if I set the heap limit to 'Adaptive'