Sau khi đọc chủ đề email ban đầu và câu trả lời của @ ewwhite đã làm rõ nó, tôi nghĩ rằng câu hỏi này cần một câu trả lời cập nhật, vì câu trả lời ở trên chỉ bao gồm một nửa câu trả lời.
Ví dụ: hãy sử dụng đầu ra trên nhóm của tôi. Tôi đã sử dụng lệnh zdb -U /data/zfs/zpool.cache -bDDD My_pool
. Trên hệ thống của tôi, tôi cần thêm -U
đối số để định vị tệp bộ đệm ZFS cho nhóm, mà FreeNAS lưu trữ ở một vị trí khác với bình thường; bạn có thể hoặc không cần phải làm điều đó. Nói chung hãy thử zdb
mà không có lỗi -U
đầu tiên và nếu bạn gặp lỗi tệp bộ đệm, sau đó sử dụng find / -name "zpool.cache"
hoặc tương tự để xác định vị trí tệp cần thiết.
Đây là đầu ra thực tế của tôi và tôi đã giải thích nó dưới đây:
DDT-sha256-zap-duplicate: 771295 entries, size 512 on disk, 165 in core
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
2 648K 75.8G 68.6G 68.8G 1.39M 165G 149G 149G
4 71.2K 8.07G 6.57G 6.62G 368K 41.7G 34.1G 34.3G
8 28.1K 3.12G 2.34G 2.36G 281K 31.0G 23.1G 23.4G
16 5.07K 424M 232M 241M 110K 9.10G 5.06G 5.24G
32 1.09K 90.6M 51.8M 53.6M 45.8K 3.81G 2.21G 2.28G
64 215 17.0M 8.51M 8.91M 17.6K 1.39G 705M 739M
128 38 2.12M 776K 872K 6.02K 337M 118M 133M
256 13 420K 21.5K 52K 4.63K 125M 7.98M 18.5M
512 3 6K 3K 12K 1.79K 3.44M 1.74M 7.16M
1K 1 128K 1K 4K 1.85K 237M 1.85M 7.42M
2K 1 512 512 4K 3.38K 1.69M 1.69M 13.5M
DDT-sha256-zap-unique: 4637966 entries, size 478 on disk, 154 in core
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
1 4.42M 550G 498G 500G 4.42M 550G 498G 500G
DDT histogram (aggregated over all DDTs):
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
1 4.42M 550G 498G 500G 4.42M 550G 498G 500G
2 648K 75.8G 68.6G 68.8G 1.39M 165G 149G 149G
4 71.2K 8.07G 6.57G 6.62G 368K 41.7G 34.1G 34.3G
8 28.1K 3.12G 2.34G 2.36G 281K 31.0G 23.1G 23.4G
16 5.07K 424M 232M 241M 110K 9.10G 5.06G 5.24G
32 1.09K 90.6M 51.8M 53.6M 45.8K 3.81G 2.21G 2.28G
64 215 17.0M 8.51M 8.91M 17.6K 1.39G 705M 739M
128 38 2.12M 776K 872K 6.02K 337M 118M 133M
256 13 420K 21.5K 52K 4.63K 125M 7.98M 18.5M
512 3 6K 3K 12K 1.79K 3.44M 1.74M 7.16M
1K 1 128K 1K 4K 1.85K 237M 1.85M 7.42M
2K 1 512 512 4K 3.38K 1.69M 1.69M 13.5M
Total 5.16M 638G 576G 578G 6.64M 803G 712G 715G
dedup = 1.24, compress = 1.13, copies = 1.00, dedup * compress / copies = 1.39
Tất cả có nghĩa là gì, và tính ra kích thước bảng khấu trừ thực tế:
Đầu ra hiển thị hai bảng phụ, một bảng cho các khối tồn tại trùng lặp ( DDT-sha256-zap-trùng lặp ) và một bảng cho các khối không tồn tại trùng lặp ( DDT-sha256-zap-unique ) /. Bảng thứ ba bên dưới chúng đưa ra tổng cộng trên cả hai bảng này và có một hàng tóm tắt bên dưới. Chỉ nhìn vào các hàng "tổng" và tóm tắt cho chúng ta những gì chúng ta cần:
Kích thước DDT cho tất cả các khối xuất hiện nhiều lần ("DDT-sha256-zap-trùng lặp") :
771295 entries, size 512 bytes on disk, 165 bytes in RAM ("core")
Kích thước DDT cho các khối duy nhất ("DDT-sha256-zap-unique") :
4637966 entries, size 478 bytes on disk, 154 bytes in RAM ("core")
Tổng số thống kê DDT cho tất cả các mục DDT, trùng lặp + duy nhất ("biểu đồ DDT được tổng hợp trên tất cả các DDT") :
allocated referenced
(= disk space actually used) (= amount of data deduped
into that space)
______ ______________________________ ______________________________
blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
Total 5.16M 638G 576G 578G 6.64M 803G 712G 715G
Tóm tắt :
dedup = 1.24, compress = 1.13, copies = 1.00, dedup * compress / copies = 1.39
Chúng ta hãy làm một số crunching.
Số lượng khối hoạt động như thế này: Số lượng mục nhập liên quan đến các khối trùng lặp = 771295, số lượng mục nhập liên quan đến các khối duy nhất = 4637966, tổng số mục trong bảng DDT phải là 771295 + 4637966 = 5409261. Vì vậy, số lượng khối trong hàng triệu (hàng triệu nhị phân nghĩa là!) sẽ là 5409261 / (1024 ^ 2) = 5.158 triệu. Trong bản tóm tắt, chúng tôi thấy có tổng số khối 5,16M .
RAM cần thiết hoạt động như thế này: 771295 mục nhập cho các khối trùng lặp, mỗi khối chiếm 165 byte trong RAM và 4637966 mục cho các khối duy nhất mỗi khối chiếm 154 byte trong RAM, do đó, tổng RAM cần cho bảng khấu trừ ngay bây giờ = 841510439 byte = 841510439 / (1024 ^ 2) MByte = 803 MB = 0,78 GB RAM .
(Kích thước trên đĩa được sử dụng có thể được xử lý theo cùng một cách, sử dụng số liệu "kích thước trên đĩa". Rõ ràng ZFS đang cố gắng sử dụng I / O đĩa hiệu quả và tận dụng thực tế là không gian đĩa được chiếm bởi DDT Thông thường, đây là một vấn đề. Có vẻ như ZFS chỉ đơn giản là phân bổ một khu vực 512 byte hoàn chỉnh cho mỗi mục nhập, hoặc một cái gì đó dọc theo các dòng đó, thay vì chỉ 154 hoặc 165 byte, để giữ cho nó hiệu quả. các bản sao được giữ trên đĩa, mà ZFS thường làm.)
Tổng lượng dữ liệu được lưu trữ và lợi ích từ việc khấu trừ dữ liệu đó: Từ tổng số liệu thống kê DDT, 715 Gbytes ("715G") dữ liệu được lưu trữ chỉ bằng 578 GBytes ("578G") lưu trữ được phân bổ trên các đĩa. Vì vậy, tỷ lệ tiết kiệm không gian khấu trừ của chúng tôi là (715 GB dữ liệu) / (578 GB dung lượng được sử dụng sau khi khấu trừ) = 1.237 x, đó là những gì tóm tắt đang nói với chúng tôi ("depup = 1,24").