ZFS 上的很多资料都提到,基本上你可以投入的内存越多越好。但是,我计划在具有 16GB RAM 的笔记本电脑上使用 ZFS——虽然这对于 ZFS 来说应该足够了,但我希望能够使用计算机,而不是从中提供文件;换句话说,我希望应用程序能够使用(至少大部分)内存,而不是文件系统实现。
因此,将其表述为一个问题,当 ZFS 运行在还运行具有高内存使用率的非 IO 敏感应用程序的计算机上时,我该如何解释 ZFS 的内存要求?
虽然 ZFS 将使用它认为对缓存有用的尽可能多的内存,但如果有需求,它会将其返还给应用程序。
请注意,其他文件系统也将占用与缓存一样多的内存。主要区别在于内存可立即用于应用程序。使用 ZFS,会有一点延迟,但这应该没有区别,除非您有一个应用程序想要使用内存比 ZFS 释放它的速度快,或者考虑到报告的可用内存(+缓冲区/缓存)并拒绝启动如果没有足够的可用。
在这种情况下,如果您事先知道应用程序所需的内存占用,您可以设置 arc max size 调整值以保留一些 RAM。
根据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)
| 归档时间: |
|
| 查看次数: |
6330 次 |
| 最近记录: |