如何将 RAM 分配给文件系统缓存

Roh*_*nil 5 linux memory elasticsearch

我正在调整运行 Elasticsearch 的 linux 机器。它说我应该将运行 elasticsearch 的机器的至少一半内存分配给文件系统缓存。但我不知道目前有多少分配给文件系统缓存。如何找到它?以及如何将其更改为 RAM 的一半?

Bas*_*tch 6

您不会文件系统缓存分配内存,因为它是页面缓存的一部分。

您可能需要有足够的物理 RAM 才能实现这一点(因此您可能需要购买更多 RAM)。

另请参阅LinuxAteMyRam(它解释了“空闲”RAM 用于文件数据的页面缓存中),并使用free(1)命令(还有ps(1) & top(1),甚至htop(1) .. .) 另见proc(5)

当然,如果您有大型进程在运行(在 Elasticsearch 之外),您可能会终止或停止它们。

另请参阅setrlimit(2)

  • +1。虽然对于已经知道 linux 文件系统缓存如何工作的人来说很明显,但如果有人询问它,IMO 最好明确声明 Linux 自动使用空闲内存来缓存文件,并在出现以下情况时自动从缓存中释放内存程序需要它(即使在您链接到的 URL 中多次说明)。即它只是工作,不需要手动调整。 (8认同)