我目前正在运行带有一些 zfs 池的 Ubuntu 12.10 桌面。我已使用以下说明以及其中包含的 PPA 安装了 ZFS: https://wiki.ubuntu.com/ZFS
我遇到了一个突发/波动的写入性能问题,这显然是一个已知问题。我发现有几篇帖子中人们遇到了完全相同的问题。持续波动的写入。根据http://wiki.freebsd.org/ZFSTuningGuide我需要应用一些设置来“避免 ZFS 中经常出现的突发 IO”。这必须在 /boot/loader.conf 中完成。
由于 Ubuntu 不使用它,据我所知,我不知道如何应用如下设置:
vfs.zfs.prefetch_disable="1"
vfs.zfs.txg.timeout="5"
kern.maxvnodes=250000
vfs.zfs.write_limit_override=1073741824
vfs.zfs.arc_min="512M"
vfs.zfs.arc_max="1536M"
vm.kmem_size_max="8G"
vm.kmem_size="6G"
这是在常规调整部分中提到的。其他来源说使用 sysctl。但是当我这样做时,我得到了这个:sudo sysctl vfs.zfs.prefetch_disable="1" sysctl: 无法统计 /proc/sys/vfs/zfs/prefetch_disable:没有这样的文件或目录
我在 /proc/sys 中找不到任何有关 vfs 或 zfs 的内容。
在 Ubuntu 中哪里可以做这种事?
谢谢
答案1
大多数 zfs-fuse 软件包中已默认设置此选项。仔细检查/etc/zfs/zfsrc
文件中是否存在以下内容:
# zfs-prefetch-disable : disable zfs high level prefetch cache
# This setting can eat as much as 150 Mb of ram, so uncomment if you want
# to save some ram and are ready to loose a little speed.
zfs-prefetch-disable
或者,要为本机 ZoL 驱动程序设置此选项,请执行以下操作:
# modprobe zfs zfs_prefetch_disable=1
为了使更改永久生效,请创建一个/etc/modprobe.d/zfs
文件并将此行放入其中:
options zfs zfs_prefetch_disable=1
Linux 上 ZFS 的大多数可调参数都是通过模块选项设置的。您可以通过运行以下命令获取可用选项的完整列表:
# modinfo zfs
大多数这些选项将直接对应于可进入loader.conf
或sysctl
其他系统上的内容。
答案2
您可以在以下位置找到更多设置/sys/module/zfs/parameters
例如:
$ cat /sys/module/zfs/parameters/zfs_prefetch_disable
0
$ echo 1 >/sys/module/zfs/parameters/zfs_prefetch_disable