Bu beni şaşırtıyor ve ZFS'nin gerçekte ne yaptığını araştırmanın bir yolunu bilmiyorum.
Hızlı bir ZFS havuzu (hızlı 7200'lerde ithal edilen aynalar) ve test için tek bir UFS SSD ile FreeNAS 11.1'in temiz bir kurulumunu kullanıyorum. Config hemen hemen "kutudan çıkar".
SSD, konsoldan havuza kopyalanan, 16-120 GB boyutunda 4 dosya içeriyor. Havuz temizlendi (buna değer: 4x tasarruf, diskte 12TB boyutunda) ve sistemde çok miktarda RAM (128GB ECC) ve hızlı Xeon var. Bellek yeterli - zdb
havuzun toplam 121M bloğu (her biri diskte 544 bayt, RAM'de 175 bayt) olduğunu gösterir; bu nedenle tüm DDT yalnızca 20.3 GB'dir (TB veri başına yaklaşık 1.7 GB).
Ancak dosyaları havuza kopyaladığımda şunu görüyorum zpool iostat
:
Bir dakika kadar düşük seviyeli bir döngü okuyor ve kısa bir yazı yazıyor. Okunan kısım resimlerde gösterilmiştir. Görevin toplam yazma hızı da mükemmel değil - havuz% 45/10 TB boş ve doğal olarak yaklaşık 300 - 500 MB / sn yazabiliyor.
Nasıl kontrol edileceğini bilmeden, kuşku duymam, düşük seviyenin, ARC'ye önceden yüklenmediğinden (veya sürekli olarak ARC'den dosya verileri yazılarak itildiğinden) DDT'yi ve diğer meta verileri okumaktan kaynaklanıyor olmasıdır. Olabilir.
Belki de buluntu tekilleştirme sonuçları çok fazla yazmıyor, sadece bu dosyaların dup versiyonlarını hatırlamıyorum ve hatırladığım en iyi / dev / random (aynısını kontrol edeceğim ve kısa bir süre önce güncelleyeceğim) ile aynı. Olabilir. Gerçek bir fikir yok.
Optimize etmek amacıyla, tam olarak neler olup bittiğini araştırmak için ne yapabilirim?
RAM ve veri tekilleştirme güncellemesi:
Q yorumunu izleyerek DDT boyutunu gösterecek şekilde güncelledim. Dedup RAM, genellikle TB x 4 başına 5 GB olarak belirtilir, ancak bu, dedup için gerçekten uygun olmayan bir örneğe dayanır. Blok sayısını, girdi başına bayt ile çarparak hesaplamanız gerekir. Sık sık alıntılanan "x 4" yalnızca "yumuşak" bir varsayılan sınırdır (varsayılan olarak ZFS, daha fazla kullanmanız söylenmediği sürece meta verileri ARC'nin% 25'i ile sınırlandırır - bu sistem dedup için öngörülüyor ve tümü hızlandırmak için kullanılabilecek 64 GB ekledim . meta verileri önbelleğe alma).
Bu yüzden bu havuzda zdb
tüm DDT'nin TB başına 5 GB değil (toplam 20G) TB başına yalnızca 1,7 GB'a ihtiyacı olması gerektiğini ve toplamda ARC'nin% 70'ini (123G'nin 80G'si) meta verisini vermekten memnuniyet duyuyorum.
Bu boyutta, ARC'den 'ölü' dosya içeriğinden başka bir şey çıkarmanız gerekmez . Bu yüzden ZFS'nin ne olup bittiğini düşündüğünü bulmak için araştırıyorum ve yaptığım değişikliklerin etkisini görebiliyorum, çünkü çok büyük "düşük seviye okuma" miktarına gerçekten çok şaşırdım ve aramaya başladım. Yaptıklarını düşündüğü gerçeği araştırıp onaylamanın bir yolu.