ZFS havuzum neden zamanının% 97'sini hedefi okuma ve yalnızca yaklaşık% 3'ü yazma işleminde geçiriyor?


1

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 - zdbhavuzun 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: görüntü tanımını buraya girin

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 zdbtü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.


Veri tekilleştirme. ZFS makalesinde yer alan kurallardan, Dedupe'ye veya Dedupe'ye ... , tüm dedup tablosuna sığdırmak için 240GiB RAM'a (12TiB × 5GiB / TiB × 4) ihtiyacınız olabilir. Bu yazı muhtemelen burada yazabileceğim bir cevaptan daha faydalı.
Deltik

Teşekkürler ve Q güncellendi. Ben gerçekten onu araştırmanın yollarını arıyorum. Ben de başka ne olabileceğini düşünemiyorum - olması gerekmemesi dışında. Çevrimiçi örneklerdeki tekil tablo, çoğaltılmamış bir havuzdan geliyor. Maden 4x'tir ve bu, tüm DDT'nin ARC'nin% 17'sinin altında TB veya 20GB başına yalnızca 1,7GB olduğu anlamına gelir (calc için güncellemeye bakın). Teorik olarak hiçbir sınırın yakınında değildim ve veri tekilleştirme RAM’de% 100 olmalıdır (veya bu şekilde ayarlanabilir). Dolayısıyla ZFS tam olarak ne öğrenmek sondalama onun aktivite ve ilgi benim şaşkınlık o düşünür onun aslında ....... yapıyor
Stilez

Yeni bir havuzda aynı verileri veri tekilleştirmesi olmadan test etmeye ne dersiniz? Daha sonra daha küçük bir miktar veri ile tekilleştirme, ancak kuralına göre Deltik yayınlanmıştır. Bu şekilde, bilinmeyen faktörleri oldukça hızlı bir şekilde azaltabilirsiniz.
user121391
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.