ZFS 重复数据删除表未分页到 RAM

ZFS 重复数据删除表未分页到 RAM

我有一个池,其中有 3.41 TB 的数据,根据输出判断,卷上启用了重复数据删除

zpool status -D <pool_name>
...
dedup: DDT entries 73665285, size 696B on disk, 154B in core
...

我看到 RAM 中只存储了 10 GB 的 DDT,如果我加载更多数据,块数将增加,字节数将减少。据我所知,DDT 存储在 ARC 的元数据中,输出时arc_meta_used,我只看到大约 8GB,这是元数据数量的限制(zfs_arc_meta_limit_percent) 在 ARC 中设置为 75%,也就是说,它甚至还没有达到它,RAM 数量 = 64GB。为什么整个重复数据删除表没有被转储到 RAM 中?

根据此输出,我的 DDT 大小为 37,19GB

zdb -b pool
bp count:       124780196
    ganged count:           0
    bp logical:    3997925134336      avg:  32039
    bp physical:   3988307198976      avg:  31962     compression:   1.00
    bp allocated:  6056878956544      avg:  48540     compression:   0.66
    bp deduped:    2188370706432    ref>1: 15910160   deduplication:   1.36
    SPA allocated: 3868508110848     used: 25.36%

    additional, non-pointer bps of type 0:         95
    Dittoed blocks on same vdev: 3706666

为什么表没有分页到RAM?以及如何强制卸载它?

相关内容