首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用ZFSonLinux上的缓存

禁用ZFSonLinux上的缓存
EN

Server Fault用户
提问于 2014-08-21 05:16:32
回答 1查看 6.4K关注 0票数 2

使用ZFS来利用一些可用的选项并管理卷,而不是RAID。我有一个逻辑设备( have )添加到一个zpool中。

ZFS ARC的性能似乎不如我的HW RAID缓存好,所以我试图禁用它,看看是否能够产生类似于在HW RAID设备上运行的基准测试的结果,但是ZFS卷的性能会受到影响。

我试着禁用主缓存和二次缓存,但这实际上损害了性能,它没有像我预期的那样使用HW RAID缓存。所以我不知所措。是否不可能在ZFS中使用我的HW缓存?也许主缓存和次缓存不是要修改的正确参数。

配置带有写回BBU缓存的HP P410i RAID10。

从RAID中选择具有单个逻辑设备的Zpool

为测试设备速度创建了一个测试稀疏的zvol (/dev/zd0 0)

更新此问题的原因是ZFS开销导致性能不足。当ZoL的ARC (主缓存)被禁用时,此时存在极大的开销,特别是在随机写入时。我不确定这是一般的ZoL或ZFS特有的。我建议您至少离开primarycache=metadata,如果您希望减少ARC大小,但保持磁盘的性能。

EN

回答 1

Server Fault用户

发布于 2014-08-21 05:26:32

我在硬件RAID中使用ZFS,并利用HW控制器的flash支持的写缓存(而不是ZIL设备),并利用ZFS缓存进行读取。

使用硬件RAID的ZFS最佳实践

为什么你觉得ZFS表现不好?您能分享您的zfs get all pool/filesystem输出以及您提到的基准吗?很可能只是个调优问题。

编辑:

Linux上ZFS的默认设置不是很好。你需要调整一下。

请阅读我发布的工作流程:与ext4 4结合使用的透明压缩文件系统

它们的关键部分是ashift值和zvol的volblocksize

此外,您还需要修改/etc/modprobe.d/zfs.conf

示例:

代码语言:javascript
复制
# zfs.conf for an SSD-based pool and 96GB RAM
options zfs zfs_arc_max=45000000000
options zfs zfs_vdev_scrub_min_active=48
options zfs zfs_vdev_scrub_max_active=128
options zfs zfs_vdev_sync_write_min_active=64
options zfs zfs_vdev_sync_write_max_active=128
options zfs zfs_vdev_sync_read_min_active=64
options zfs zfs_vdev_sync_read_max_active=128
options zfs zfs_vdev_async_read_min_active=64
options zfs zfs_vdev_async_read_max_active=128
options zfs zfs_top_maxinflight=160

编辑:

好吧,我的建议是始终使用lz4压缩,使用体积值128 k,将ARC限制在内存的40%左右,调整我发布的zfs.conf中的值(如果使用10k SAS磁盘,可能会将所有值降低50% ),并启用带有tuned-adm profile enterprise-storage调优-adm框架

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/622946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档