由于Spark在JVM上运行,因为Spark可能不再对某些内存有任何引用并不意味着将释放该内存。即使已经触发了垃圾收集,JVM也可能不会将内存释放回操作系统(这是由 -XX:MaxHeapFreeRatio 除其他事项外)。
-XX:MaxHeapFreeRatio