我正在运行 VDI 服务器。许多 VDI 用户都在他们的桌面上安装相同的应用程序,因此zfs set dedup=on vdipool/myDesktop
派上用场了。
如何优化 zfs dedup 的性能影响?
我可以期待什么性能下降?
有没有办法为重复数据删除进程分配一个专用的 CPU 线程,以便系统的其余部分受到的影响最小?
我正在运行 VDI 服务器。许多 VDI 用户都在他们的桌面上安装相同的应用程序,因此zfs set dedup=on vdipool/myDesktop
派上用场了。
如何优化 zfs dedup 的性能影响?
我可以期待什么性能下降?
有没有办法为重复数据删除进程分配一个专用的 CPU 线程,以便系统的其余部分受到的影响最小?
在 100% SSD 存储上,如果您有足够的 RAM 让 100% 的重复数据删除哈希表始终位于 RAM 中,则性能影响可能是可以承受的。确保所有元数据都有足够的 RAM 是唯一可以进行的优化。
如果您正在旋转生锈,极端的磁盘碎片将使性能完全无法使用。
一般来说,如果您实际上没有看到至少10:1 的重复数据删除率,那么巨大的性能影响是不值得的。
随着最近分配类(和“特殊”vdev)的引入,假设您有一个快速的 SSD 来保存元数据(包括重复数据删除数据),您可能在非 SSD 池上的重复数据删除方面具有足够好的性能。
在添加“特殊”vdev 之前,请进行一些实验,并了解该功能。据我了解,“特殊”vdev 的失败会影响整个池。此外,您不能删除“特殊”vdev。
https://www.reddit.com/r/zfs/comments/cm594b/why_is_nobody_talking_about_the_newly_introduced/
如果重复块完全随机发生,在准级别分布上,那么是的,碎片将是 HDD 媒体上的一个严重问题。但在实际场景中,不会发生这种情况。在实际场景中,绝大多数的欺骗块作为欺骗(或非常相似的)文件的一部分发生,导致它们以束的形式发生。因此,它不会导致严重的碎片问题。
除此之外,碎片问题的解决方案是碎片整理,而不是避免使用这个非常有用的功能。
但是,zfs 根本没有碎片整理工具或功能。对 zfs 卷进行碎片整理的唯一方法是重建它。除此之外,它还有一些许可问题。但是里面还有很多工作要做,很多人觉得它很有用。希望有人会实施碎片整理(甚至可能是在线碎片整理!),在那之前我们应该尊重我们所拥有的。