title: JVM leaking memory outside heap and buffer pools
body: <p>We have a java application as a long running service (actual up-time for this JVM 31 days 3 hrs 35 min)</p>
  
  <p>Due to Windows taskmanager the process uses <strong>1,075,384,320 B</strong> - nearly one GB.</p>
  
  <p>Heap size of the JVM is restricted to <strong>256 MB (-Xmx256m)</strong></p>
  
  <p><strong>Memory-Data</strong></p>
  
  <pre><code>Memory:
  Size: 268,435,456 B
  Max: 268,435,456 B
  Used: 100,000,000 up to 200,000,000 B
  </code></pre>
  
  <p><strong>- no leak here</strong></p>
  
  <p><strong>Buffer Pools</strong></p>
  
  <pre><code>Direct:
  Count: 137
  Memory Used and Total Capacity: 1,348,354 B
  
  Mapped:
  Count: 0
  Memory Used and Total Capacity: 0 B
  </code></pre>
  
  <p><strong>- no leak here</strong></p>
  
  <p><strong>my question:</strong> where does the JVM uses the additional memory?</p>
  
  <p><strong>Additional informations:</strong></p>
  
  <pre><code>Java: version 1.8.0_74 32 bit (Oracle)
  
  Classes:
  Total loaded: 17,248
  Total unloaded: 35,761
  
  Threads:
  Live: 273
  Live peak: 285
  Daemon: 79
  Total started: 486,282
  </code></pre>
  
  <p>After a restart it takes some days for the process size to grow, so of course regular restart would help, and maybe using a newer java version also may solve the problem, but I would like to have an explanation for this behaviour, e. g. known bug in 1.8.0 before 111, fixed in ... - I did not find anything, yet.</p>
  
  <p>We use about 350 of such installations in different places so changing is not so easy.</p>