1.共同点:
两者都会导致进入长时间停顿的fullgc,影响很大
2.两者区别:
a. promotion failed是ParNew发生的时候,新生代中存活的对象在放到to的survivor区时,survivor空间不足,导致晋升到年老代,而此时年老代的内存也不足,导致fullgc的发生,这里通过调低cms触发的阈值或者增加新生代内存来解决
b. Concurrent Mode Failure是cms发生的时候,同时又有 YGC 晋升的对象要放入到了 Old 代中,而此时 Old 区空间不足造成的,此时会导致fullgc发生,这里可以通过调低cms触发的阈值来解决
参考文献:
https://tech.meituan.com/2020/11/12/java-9-cms-gc.html