Episode ini membahas pengoptimalan performa array: menyesuaikan chunk size dan stripe cache, memilih algoritma parity dan scheduler I/O, serta mengukur hasilnya dengan fio dan dd untuk throughput serta IOPS.

Array yang "berfungsi" belum tentu array yang "cepat". Episode 18 ini membahas pengoptimalan performa — bagaimana memilih parameter yang tepat untuk workload kalian, dan yang lebih penting, bagaimana mengukur dampaknya secara objektif.
Performa storage penuh dengan mitos dan tebakan. Satu-satunya cara mengetahui pengaturan yang tepat adalah mengukur sebelum dan sesudah perubahan memakai alat benchmark seperti fio. Episode ini mengajarkan parameter yang bisa diubah dan cara mengukurnya tanpa menebak-nebak. Mari mulai dari chunk size.
Chunk size adalah ukuran potongan data yang ditulis ke satu disk sebelum berpindah ke disk berikutnya pada array parity. Ini memengaruhi dua hal: ukuran stripe dan pola I/O tiap disk.
sudo mdadm --detail /dev/md0 | grep -i chunkOutput mdadm --detail menampilkan Chunk Size : 512K atau nilai lain. Chunk besar membuat tulis sequential menjadi efisien; chunk kecil menyebar beban lebih merata untuk I/O acak.
Chunk bisa diubah dengan reshape (dibahas di episode 7):
sudo mdadm --grow /dev/md0 --chunk=64Aturan praktisnya:
Uji beberapa nilai dengan benchmark sebelum menetapkan pilihan.
Stripe cache adalah buffer kernel untuk stripe yang sedang dibangun pada array parity. Ukuran dan jumlahnya bisa disesuaikan lewat sysfs:
cat /sys/block/md0/md/stripe_cache_size
echo 8192 | sudo tee /sys/block/md0/md/stripe_cache_sizeOutput cat /sys/block/md0/md/stripe_cache_size menampilkan jumlah halaman cache. Memperbesar cache bisa meningkatkan throughput tulis parity, tapi memakai lebih banyak RAM — atur sesuai sisa memory sistem.
Kernel punya beberapa algoritma untuk menghitung parity RAID 5/6, di antaranya raid6_algos yang memilih implementasi terbaik untuk CPU:
cat /sys/module/raid6/parameters/raid6_algosOutput menampilkan daftar algoritma seperti neon gen2 gen1 sse2 sse1.... Kernel otomatis memilih yang tercepat untuk CPU kalian. Di sistem dengan parity-heavy workload, pilihan ini menentukan; pada umumnya default sudah baik.
I/O scheduler menentukan bagaimana permintaan baca-tulis diatur menuju disk. Untuk array RAID, pilihan umum:
cat /sys/block/md0/queue/scheduler
echo mq-deadline | sudo tee /sys/block/md0/queue/schedulerOutput cat /sys/block/md0/queue/scheduler menampilkan scheduler aktif. Ubah via echo untuk pengaturan sementara; untuk permanen, atur lewat udev rule atau sysfs.conf.
Dua parameter lain yang sering diubah:
sudo blockdev --setra 65536 /dev/md0
echo 128 | sudo tee /sys/block/md0/queue/nr_requestsPerintah blockdev --setra mengatur read-ahead dalam sector, dan nr_requests membatasi jumlah request antrean. Nilai yang terlalu kecil membatasi throughput sequential; terlalu besar meningkatkan latency.
fio adalah alat benchmark paling andal untuk storage. Contoh mengukur IOPS acak tulis:
fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k \
--size=1G --numjobs=4 --iodepth=32 --direct=1 --filename=/mnt/raid/tesPerintah fio di atas menjalankan tulis acak 4K dengan kedalaman 32. Output menampilkan IOPS dan lat — angka inilah yang dibandingkan antar konfigurasi.
Untuk pengukuran throughput sequential cepat:
dd if=/dev/zero of=/mnt/raid/tes bs=1M count=2048 oflag=direct status=progressPerintah dd di atas menulis 2GB data dengan oflag=direct agar tidak memakai page cache, lalu menampilkan kecepatan di akhir.
Warning
Benchmark mengubah performa secara nyata: tulis acak menguras endurance SSD dan tulis penuh memberi tekanan pada disk. Selalu pakai area benchmark khusus (bukan data produksi), jalankan di luar jam sibuk, dan beri jeda antar pengujian agar hasil tidak saling mencemari.
Ikuti alur berikut agar tuning tidak berubah menjadi tebakan:
Episode 18 memberi kalian kendali atas performa array: chunk size, stripe cache, algoritma parity, scheduler I/O, dan read-ahead — semuanya diukur dengan fio dan dd. Kalian kini bisa membuat array yang cepat untuk workload kalian, bukan sekadar array yang berfungsi.
Inti yang harus dibawa pulang:
Di episode 19 selanjutnya kita akan membahas ZFS RAID advanced (BRT, Tiering) — Block Reference Table untuk dedup cepat, RAIDZ expansion yang stabil, dRAID yang matang, serta tiering dengan special vdev dan hybrid flash plus HDD. Kalian akan menjelajahi kemampuan ZFS terkini untuk storage modern.