title: Is 300-400 MB/min alloc/dealloc rate OK for java gc?
body: <p>There is a java server-side application. Threads number is up to 1000.  The app intensely uses NIO for communication, JINI etc.</p>
  
  <p>Would you consider allocating/de-allocating of 400 megabytes per a minute to be fine (acceptable) for a java application at all? </p>
  
  <p>The reason to ask the question -  amount of available memory becomes less as time goes on: there is some memory leaks (several megs per day), also amount of used memory depends on amount of work to do (the app caches some things). So there may be a situation with &lt;= 100 megs of free memory. GC becomes crazy of course, as its activity becomes very demanded. (Recommended running time to restart is a month in production)</p>
  
  <p><img src="https://i.stack.imgur.com/YKmUj.png" alt="Heap allocation statistic from VisualVM"></p>