Память, используемая процессом Java (как видно из ОС), не ограничивается Java-кучей. Также необходимо учитывать количество областей памяти:
Используйте функцию NativeMemoryTracking JDK, чтобы получить подробное разбиение областей памяти, используемых JVM:
java -XX:NativeMemoryTracking=detail -XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics
Я попробовал вашу конфигурацию на виртуальной машине F29. Вот что я сделал:
Надеюсь, это поможет