title: How to reduce java concurrent mode failure and excessive gc
body: <p>In Java, the concurrent mode failure means that the concurrent collector failed to free up enough memory space form tenured and permanent gen and has to give up and let the full <em>stop-the-world</em> gc kicks in. The end result could be very expensive.</p>
  
  <p>I understand this concept but never had a good comprehensive understanding of<br>
  A) what could cause a concurrent mode failure and<br>
  B) what's the solution?. </p>
  
  <p>This sort of unclearness leads me to write/debug code without much of hints in mind and often has to shop around those performance flags from Foo to Bar without particular reasons, just have to try. </p>
  
  <p>I'd like to learn from developers here how your experience is? If you had encountered such performance issue, what was the cause and how you addressed it? </p>
  
  <p>If you have coding recommendations, please don't be too general. Thanks!</p>