Я наблюдал еще одну ситуацию, которая запускает полный сборщик мусора в Java Hotspot VM 1.6 64bit в Ubuntu, используя Concurrent Mark-Sweep:
Если значение -XX: PermSize не равно -XX: MaxPermSize(например, меньше), случайный Full GC происходит, когда java нужно расширить PermGen (даже если ему не нужно выделять больше памяти, чем MaxPermSize).Поэтому установка -XX: PermSize и -XX: MaxPermSize одинаковыми кажется хорошей идеей.