RFR: 8012241 NMT huge memory footprint, it usually leads to OOME

Zhengyu Gu zhengyu.gu at oracle.com
Thu Jul 11 06:07:17 PDT 2013


The patch is a workaround that prevents JVM from OOM when running 
Kitchensink with NMT on some slow machines.

Kitchensink normally runs with about 100 threads, peaks around 150 
threads. On some slow machines, NMT worker thread does not process raw 
NMT data quick enough, that causes huge backlogs, which consumes large 
amount of memory and can lead JVM OOM. By enforcing the new threshold, 
NMT will shutdown itself and free NMT memory.

If native memory tracking is important to diagnostic memory issue, user 
can use -XX:-AutoShutdownNMT diagnostic flag to override above behavior. 
Turning off auto shutdown NMT flag, NMT also tries slow down malloc/free 
rate, to give NMT worker thread a chance to catch up.


JBS: https://jbs.oracle.com/bugs/browse/JDK-8012241
Exteneral bug: not available
Webrev: http://cr.openjdk.java.net/~zgu/8012241/webrev.00/ 
<http://cr.openjdk.java.net/%7Ezgu/8012241/webrev.00/>


Tests:
   Christian Tornqvist has verified on Windows and Solaris, that patch 
prevented JVM from OOM.

Thanks,

-Zhengyu


More information about the hotspot-runtime-dev mailing list