ZFS(在 Linux 上)对非文件服务器计算机的内存要求

Cac*_*tus 5 memory linux zfs

ZFS 上的很多资料都提到,基本上你可以投入的内存越多越好。但是,我计划在具有 16GB RAM 的笔记本电脑上使用 ZFS——虽然这对于 ZFS 来说应该足够了,但我希望能够使用计算机,而不是从中提供文件;换句话说,我希望应用程序能够使用(至少大部分)内存,而不是文件系统实现。

因此,将其表述为一个问题,当 ZFS 运行在还运行具有高内存使用率的非 IO 敏感应用程序的计算机上时,我该如何解释 ZFS 的内存要求?

jll*_*gre 6

虽然 ZFS 将使用它认为对缓存有用的尽可能多的内存,但如果有需求,它会将其返还给应用程序。

请注意,其他文件系统也将占用与缓存一样多的内存。主要区别在于内存可立即用于应用程序。使用 ZFS,会有一点延迟,但这应该没有区别,除非您有一个应用程序想要使用内存比 ZFS 释放它的速度快,或者考虑到报告的可用内存(+缓冲区/缓存)并拒绝启动如果没有足够的可用。

在这种情况下,如果您事先知道应用程序所需的内存占用,您可以设置 arc max size 调整值以保留一些 RAM。


Chr*_*ian 4

根据Linux 上的 ZFS 常见问题解答,需要 2GB 内存。

您还可以通过设置参数来调整内存要求zfs_arc_max

# cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=4294967296
Run Code Online (Sandbox Code Playgroud)

其中有/sys显示zfs设置的参数:

/sys/module/zfs/parameters/zfs_arc_max
/sys/module/zfs/parameters/zfs_arc_min
Run Code Online (Sandbox Code Playgroud)

您还可以使用以下设置来设置缓存哪些文件系统zfs primarycache

# zfs set primarycache=[all none metadata] zpool/fs
Run Code Online (Sandbox Code Playgroud)