如何真正释放Linux中的巨大页面以供新进程使用?

真的找不到这个..希望有人可以帮助。 我正在打造一个100GB的Java堆作为大数据caching。 为了避免与文件系统caching之类的冲突,并且因为它在一般情况下performance更好,我将在大页面中分配它。

我保留了51,200 x 2MB的大页面,一切都很顺利。 然而,当我终止进程然后重新启动时,看起来Linux将这些页面中的一部分留作“rsvd”。

# less /proc/meminfo | grep Hug AnonHugePages: 0 kB HugePages_Total: 52000 HugePages_Free: 50952 HugePages_Rsvd: 1634 HugePages_Surp: 0 Hugepagesize: 2048 kB 

据我所知,我没有任何其他系统configuration为请求或保留这些页面。 Linux为我提供了一种方法,让我看看是什么保留了那些保留的和/或使该保留无效的?

从我发现的一切谷歌他们并没有被实际使用,只是Linux保留了他们的储备,但有趣的是不允许我重新启动我的巨大JVM时使用它们。

任何帮助将是伟大的。

Solutions Collecting From Web of "如何真正释放Linux中的巨大页面以供新进程使用?"

您很可能会让Java重新使用仍在内存中的对象。但是,运行以下操作将删除该对象以及其他所有已存储和未使用的对象

 echo 3 | sudo tee /proc/sys/vm/drop_caches 

但是你并不需要 – 虽然它的“采取”不是真的。 只要有实际需要的内存,linux就会返还

欲了解更多信息,请访问http://www.linuxatemyram.com/

你实际上不需要做任何事情。 您唯一需要担心的内存就是应用程序运行时的内存