10 poin oleh xguru 2021-11-15 | 1 komentar | Bagikan ke WhatsApp
<p>- Heap mengoperasikan Postgres multi-petabyte untuk analitik<br /> - Seiring pertumbuhan yang cepat, utilisasi node melampaui 80% dan menimbulkan masalah performa pada pipeline pengumpulan data <br /> - Penyebab masalahnya adalah SSD cenderung mengalami penurunan performa saat utilisasinya mendekati 100%<br /> - Masalah ini makin parah karena menggunakan ZFS yang berbasis CoW (Copy-on-Write) <br /> → setiap kali blok diperbarui, salinan baru akan ditulis <br /> - Tentu saja, CoW juga punya berbagai keunggulan<br /> → kompresi di tingkat filesystem lebih mudah dibanding filesystem lain, sehingga ruang bisa dihemat dengan kompresi 4-5x <br /> → memiliki ketahanan yang lebih tinggi sehingga `full_page_writes` di Postgres bisa dinonaktifkan, yang pada gilirannya meningkatkan performa dan mengurangi total IO <br /> → snapshot point-in-time yang menjamin konsistensi - karena halaman tidak benar-benar bisa diubah, halaman lama tetap dipertahankan bahkan selama snapshot berlangsung<br /> - Namun, filesystem CoW seperti ZFS akan mengalami penurunan performa saat kapasitasnya makin penuh<br /> → setiap kali halaman diperbarui, block allocator harus mencari blok kosong, sehingga saat utilisasi tinggi penurunan performanya menjadi sangat serius <br /> → blok yang sebelumnya sudah di-unlink harus dihapus dan dicampur kembali dengan blok yang ada <br /> → untuk mendapatkan rasio kompresi yang lebih tinggi, ukuran blok diatur besar menjadi 64kb sehingga masalahnya makin parah <br /> → karena alasan-alasan ini, sebaiknya utilisasi ZFS tidak melebihi 80% <br /> <br /> - Mereka mencoba meng-upgrade ke ZFS 2.x dan mengganti kompresi dari lz4 ke Zstandard <br /> → lz4 sangat cepat dan menunjukkan rasio kompresi sekitar ~4.4x <br /> → Zstandard menunjukkan rasio kompresi hingga ~5.5x, yaitu peningkatan 20% <br /> → tetapi banyak benchmark menunjukkan bahwa Zstandard lebih lambat daripada lz4<br /> → karena itu mereka memutuskan melakukan pengujian ketat di kondisi nyata <br /> → hasil pengujian menunjukkan performa query tidak berubah, penggunaan storage turun ~20%, dan waktu query tulis berkurang setengahnya <br /> <br /> - Cluster DB Heap dibagi menjadi 5 node dan masing-masing berada dalam ASG terpisah <br /> → perubahan node cukup dilakukan dengan melepaskannya dari ASG, lalu ASG membuat node baru, me-restore dari backup terakhir, dan masuk ke mode warm standby <br /> → mereka membuat AMI dengan konfigurasi baru dan melanjutkan migrasi satu node demi satu <br /> → total penggunaan turun ~21%, waktu tulis berkurang 50%, dan performa query hampir tidak berubah </p>

1 komentar

 
xguru 2021-11-15
<p>- Arch Linux mengganti alat kompresi paket dari xz ke Zstandard https://id.news.hada.io/topic?id=1227<br /> - Renaisans algoritme kompresi https://id.news.hada.io/topic?id=1228<br /> <br /> Tulisan tersebut tidak membahas penggunaan CPU, tetapi menurut komentar penulis asli di HN, angkanya meningkat dari sekitar ~40% menjadi ~50%. (Artinya Zstd memang menggunakan CPU lebih banyak)<br /> - https://news.ycombinator.com/item?id=29164727</p>;