
3.41TB의 데이터가 있는 풀이 있고, 볼륨에서 중복 제거가 활성화되어 있습니다.
zpool status -D <pool_name>
...
dedup: DDT entries 73665285, size 696B on disk, 154B in core
...
RAM에 DDT가 10GB만 저장되어 있는 것을 보니, 더 많은 데이터를 로드하면 블록 수가 늘어나고 바이트는 줄어듭니다. 제가 아는 한 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으로 페이징되지 않는 이유는 무엇입니까? 강제로 언로드하는 방법은 무엇입니까?