title: How to analyze memory fragmentation in java?
body: <p>We experience several minutes lags in our server. Probably they are triggered by "stop the world" garbage collections. But we use concurrent mark and sweep GC (-XX:+UseConcMarkSweepG) so, I think, these pauses are triggered by memory fragmentation of old generation. </p>
  
  <p>How can memory fragmentation of old generation be analyzed? Are there any tools for it?</p>
  
  <p>Lags happen every hour. Most time they are about 20 sec, but sometimes - several minutes.</p>