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