HADOOP-11098. [JDK8] Max Non Heap Memory default changed between JDK7 and 8.

This commit is contained in:
Tsuyoshi Ozawa 2015-10-05 08:15:06 +09:00
parent 3b85bd7c33
commit 30e2f836a2
4 changed files with 21 additions and 4 deletions

View File

@ -1113,6 +1113,9 @@ Release 2.8.0 - UNRELEASED
HADOOP-8437. getLocalPathForWrite should throw IOException for invalid HADOOP-8437. getLocalPathForWrite should throw IOException for invalid
paths. (Brahma Reddy Battula via zxu) paths. (Brahma Reddy Battula via zxu)
HADOOP-11098. [JDK8] Max Non Heap Memory default changed between JDK7
and 8. (ozawa)
OPTIMIZATIONS OPTIMIZATIONS
HADOOP-12051. ProtobufRpcEngine.invoke() should use Exception.toString() HADOOP-12051. ProtobufRpcEngine.invoke() should use Exception.toString()

View File

@ -60,6 +60,7 @@ public class JvmMetrics implements MetricsSource {
} }
static final float M = 1024*1024; static final float M = 1024*1024;
static public final float MEMORY_MAX_UNLIMITED_MB = -1;
final MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); final MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
final List<GarbageCollectorMXBean> gcBeans = final List<GarbageCollectorMXBean> gcBeans =
@ -106,13 +107,23 @@ public class JvmMetrics implements MetricsSource {
Runtime runtime = Runtime.getRuntime(); Runtime runtime = Runtime.getRuntime();
rb.addGauge(MemNonHeapUsedM, memNonHeap.getUsed() / M) rb.addGauge(MemNonHeapUsedM, memNonHeap.getUsed() / M)
.addGauge(MemNonHeapCommittedM, memNonHeap.getCommitted() / M) .addGauge(MemNonHeapCommittedM, memNonHeap.getCommitted() / M)
.addGauge(MemNonHeapMaxM, memNonHeap.getMax() / M) .addGauge(MemNonHeapMaxM, calculateMaxMemoryUsage(memNonHeap))
.addGauge(MemHeapUsedM, memHeap.getUsed() / M) .addGauge(MemHeapUsedM, memHeap.getUsed() / M)
.addGauge(MemHeapCommittedM, memHeap.getCommitted() / M) .addGauge(MemHeapCommittedM, memHeap.getCommitted() / M)
.addGauge(MemHeapMaxM, memHeap.getMax() / M) .addGauge(MemHeapMaxM, calculateMaxMemoryUsage(memHeap))
.addGauge(MemMaxM, runtime.maxMemory() / M); .addGauge(MemMaxM, runtime.maxMemory() / M);
} }
private float calculateMaxMemoryUsage(MemoryUsage memHeap) {
long max = memHeap.getMax() ;
if (max == -1) {
return MEMORY_MAX_UNLIMITED_MB;
}
return max / M;
}
private void getGcUsage(MetricsRecordBuilder rb) { private void getGcUsage(MetricsRecordBuilder rb) {
long count = 0; long count = 0;
long timeMillis = 0; long timeMillis = 0;

View File

@ -1486,6 +1486,9 @@ Release 2.8.0 - UNRELEASED
HDFS-9193. Fix incorrect references the usages of the DN in dfshealth.js. HDFS-9193. Fix incorrect references the usages of the DN in dfshealth.js.
(Chang Li via wheat9) (Chang Li via wheat9)
HADOOP-11098. [JDK8] Max Non Heap Memory default changed between JDK7
and 8 (ozawa).
Release 2.7.2 - UNRELEASED Release 2.7.2 - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -150,11 +150,11 @@
{/fs} {/fs}
</p> </p>
{#mem.HeapMemoryUsage} {#mem.HeapMemoryUsage}
<p>Heap Memory used {used|fmt_bytes} of {committed|fmt_bytes} Heap Memory. Max Heap Memory is {max|fmt_bytes}. </p> <p>Heap Memory used {used|fmt_bytes} of {committed|fmt_bytes} Heap Memory. Max Heap Memory is {@eq key=max value="-1" type="number"}&ltunbonded&gt{:else}{max|fmt_bytes}{/eq}.</p>
{/mem.HeapMemoryUsage} {/mem.HeapMemoryUsage}
{#mem.NonHeapMemoryUsage} {#mem.NonHeapMemoryUsage}
<p>Non Heap Memory used {used|fmt_bytes} of {committed|fmt_bytes} Commited Non Heap Memory. Max Non Heap Memory is {max|fmt_bytes}. </p> <p>Non Heap Memory used {used|fmt_bytes} of {committed|fmt_bytes} Commited Non Heap Memory. Max Non Heap Memory is {@eq key=max value="-1" type="number"}&ltunbonded&gt{:else}{max|fmt_bytes}{/eq}.</p>
{/mem.NonHeapMemoryUsage} {/mem.NonHeapMemoryUsage}
{#nn} {#nn}