10 puan yazan xguru 2021-11-15 | 1 yorum | WhatsApp'ta paylaş
<p>- Heap, analiz amaçlı çoklu petabayt ölçeğinde Postgres işletiyor<br /> - Hızla büyürken düğüm kullanım oranı %80'i aştı ve veri toplama pipeline'ında performans sorunları ortaya çıktı <br /> - Sorunun nedeni, SSD'lerin kullanım oranı %100'e yaklaştığında performanslarının düşme eğilimi göstermesi<br /> - CoW (Copy-on-Write) olan ZFS kullanılması nedeniyle sorun daha da kötüleşti <br /> → blok her güncellendiğinde yeni bir kopya yazılıyor <br /> - Elbette CoW'un çeşitli avantajları da var<br /> → dosya sistemi düzeyindeki sıkıştırma, diğer dosya sistemlerine kıyasla daha kolay olduğu için 4-5x sıkıştırma ile alandan tasarruf sağlıyor <br /> → daha yüksek dayanıklılık sunduğu için Postgres'in `full_page_writes` ayarını devre dışı bırakmak mümkün oluyor; bu da performansı artırıp toplam IO'yu azaltıyor <br /> → tutarlılığı garanti eden point-in-time snapshot'lar - sayfalar fiilen değiştirilemediği için snapshot sırasında da eski sayfalar korunuyor<br /> - Ancak ZFS gibi CoW dosya sistemlerinde kapasite doldukça performans düşüyor<br /> → her sayfa güncellemesinde blok allocator'ın boş blok bulması gerektiğinden, kullanım oranı yükseldikçe performans kaybı ciddi hale geliyor <br /> → daha önce unlink edilmiş blokların silinmesi ve mevcut bloklarla karıştırılması gerekiyor <br /> → daha yüksek sıkıştırma oranı elde etmek için blok boyutunun 64kb olarak büyük ayarlanmış olması durumu daha da kötüleştirdi <br /> → bu nedenlerle ZFS kullanım oranının %80'i aşmaması öneriliyor <br /> <br /> - ZFS 2.x'e yükseltilip `lz4` sıkıştırmadan Zstandard sıkıştırmaya geçiş denenmiş <br /> → `lz4` son derece hızlı ve yaklaşık 4.4x sıkıştırma oranı sunuyor <br /> → Zstandard ise yaklaşık 5.5x'e kadar sıkıştırma oranı göstererek %20 iyileşme sağlıyor <br /> → ancak birçok benchmark'ta Zstandard'ın `lz4`'ten daha yavaş olduğu görülüyor<br /> → bu yüzden gerçek ortamda sıkı testler yapmaya karar verilmiş <br /> → test sonuçlarında sorgu performansı değişmezken depolama kullanımı yaklaşık %20 azalmış ve yazma sorgularının süresi yarıya inmiş <br /> <br /> - Heap'in DB kümesi 5 düğüme ayrılmış durumda ve her biri kendi ASG'sine bağlı <br /> → düğüm değiştirmek için yalnızca ASG'den ayırmak yeterli; ardından ASG yeni bir düğüm oluşturuyor, son yedekten geri yüklüyor ve warm standby moduna geçiyor <br /> → yeni yapılandırmayla bir AMI oluşturulup her düğüm tek tek geçirilmiş <br /> → toplam kullanım yaklaşık %21 azaldı, yazma süresi %50 düştü ve sorgu performansında kayda değer bir fark olmadı </p>

1 yorum

 
xguru 2021-11-15
<p>- Arch Linux, paket sıkıştırma aracını xz'den Zstandard'a değiştirdi https://tr.news.hada.io/topic?id=1227<br /> - Sıkıştırma algoritmalarında rönesans https://tr.news.hada.io/topic?id=1228<br /> <br /> Yazıda CPU kullanım oranından bahsedilmiyor, ancak HN'de orijinal yazarın yorumuna bakılırsa bunun yaklaşık %40'tan yaklaşık %50'ye çıktığı söyleniyor. (Yani Zstd'nin CPU'yu daha fazla kullandığı anlamına geliyor)<br /> - https://news.ycombinator.com/item?id=29164727</p>;