我有一个池,其中有 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?以及如何强制卸载它?