如何在设置 dedup=off 后(开启一段时间后)减少内存使用量?

如何在设置 dedup=off 后(开启一段时间后)减少内存使用量?

我知道这个设置dedup=on会导致内存占用过高,而且几乎不值得(例如https://serverfault.com/a/569099/208661)。但是,我确实打开了它以查看其工作原理,并在带有缓存的 1.4 TB 池中放置了 20 GB。内存消耗(启动后使用和不使用 zfs 的内存使用量差异)比使用时大约高 8 GB btrfs。设置后,dedup=on它明显高于使用btrfs,但不是 8 GB。现在,我关闭dedup off并重新启动,但内存消耗仍然很高(我想说是一样的)。

它会保持高位吗,即我是否必须销毁并重新创建池以避免这种内存消耗,它是否需要时间才能关闭,我可以做些什么(某种重新复制)以加快这个过程?

答案1

假设您的问题源于重复数据删除,它不会有太大帮助,因为只有新数据不重复,旧数据仍然重复数据删除,并且重复数据删除表也保留,请参阅http://list.zfsonlinux.org/pipermail/zfs-discuss/2013-March/007668.html

这是一个非常常见的问题。从技术上讲,您可以在池上设置 dedup=off,这样新写入的数据就不会被重复数据删除。池将继续正常工作。但是,所有现有重复数据删除所需的数据结构不会消失,它们对性能的影响也不会消失。

最重要的是,如果您禁用重复数据删除来修复重复数据删除导致的速度缓慢,它将不起作用。在这种情况下,您需要将数据发送到另一个存储设备,销毁您的池,创建一个关闭重复数据删除的新池,然后恢复数据。目前没有其他方法。

对于您来说,这将非常快,因为您只需移动 20GB。

有关重复数据删除详细信息的其他有用资源包括:

相关内容