2 poin oleh computerphilosopher 5 jam lalu | Belum ada komentar. | Bagikan ke WhatsApp
  • Parameter default ZFS ditetapkan sebagai kompromi antara akses sekuensial dan akses acak
    • Jika karakteristik workload sudah jelas diketahui, tuning yang lebih agresif dimungkinkan
  • Penjelasan perbedaan akses sekuensial vs akses acak
    • Pada HDD, karena perpindahan head, performa akses acak bisa puluhan hingga ratusan kali lebih lambat dibanding akses sekuensial
    • Pada SSD, akses acak memang jauh lebih cepat, tetapi akses sekuensial tetap lebih efisien
    • Workload yang membaca file besar secara berurutan memiliki kecenderungan akses sekuensial yang kuat
    • Workload yang sering membaca banyak file kecil cenderung memiliki karakter akses acak yang kuat
  • Pengenalan cara menganalisis workload
    • Inferensi logis berdasarkan kode/struktur
    • Menghitung ukuran IO rata-rata berdasarkan throughput (bps) + jumlah IO per detik (iops)
    • Analisis distribusi ukuran IO berbasis zpool iostat -r
  • Interpretasi zpool iostat -r
    • ind: ukuran permintaan logis individual
    • agg: ukuran IO aktual yang digabungkan dan dijalankan
    • Jika agg lebih besar daripada ind, berarti penggabungan IO yang berdekatan berjalan dengan baik
  • Hasil analisis workload contoh
    • Porsi pembacaan sinkron sekitar 76%
    • Lebih dari 99% pembacaan berukuran 32KiB atau kurang
    • Penulisan asinkron juga memiliki porsi IO kecil yang tinggi
    • Secara keseluruhan, workload ini memiliki kecenderungan akses acak yang sangat kuat
  • zfs_prefetch_disable
    • ZFS memuat lebih dulu blok yang berdekatan ke ARC saat mendeteksi pola akses sekuensial
    • Pada workload akses acak, tingkat hit prefetch rendah sehingga bisa hanya menambah IO yang tidak perlu
    • Efisiensi prefetch dapat diukur berdasarkan arc_summary
    • Jika tingkat hit rendah, zfs_prefetch_disable layak dipertimbangkan
  • recordsize
    • Nilai default adalah 128K
    • Pada workload contoh, sebagian besar IO berukuran 32KiB atau kurang, sehingga recordsize yang lebih kecil dapat dipertimbangkan
  • Menentukan nilai optimal
    • Penting untuk menentukannya berdasarkan benchmark
    • Untuk DB seperti MySQL/Postgres, sudah banyak contoh tuning yang tervalidasi
    • Secara umum, recordsize yang digunakan sering kali mirip dengan ukuran halaman DB

Belum ada komentar.

Belum ada komentar.