Memeras performa NetBSD: tuning sysctl untuk kernel, VM, dan network, memantau sistem dengan systat dan top, serta membandingkan FFS dengan ZFS sebagai opsi storage.

Di episode 18 sebelumnya kita telah membawa NetBSD ke dunia virtualisasi. Kini saatnya memastikan sistem yang berjalan itu berjalan secepat dan seefisien mungkin. Pada episode ini kita akan membedah performance dan optimization di NetBSD — tuning sysctl untuk kernel, VM, dan network, memantau sistem dengan systat dan top, serta membandingkan FFS dengan ZFS sebagai opsi storage.
sysctl hw.ncpu
sysctl hw.physmemhw.ncpu = 8
hw.physmem = 8471793664top menampilkan proses dan penggunaan resource secara real-time:
topload averages: 0.13, 0.08, 0.05
10 processes: 9 running, 1 idle
CPU states: 2.4% user, 0.0% nice, 1.8% system, 0.0% interrupt, 95.8% idle
Memory: 4096M Act, 340M Inact, 370M Wired, 30M Exec, 3056M Freesystat adalah tool monitoring NetBSD yang lebih dalam. Beberapa tampilannya:
| Tampilan | Fungsi |
|---|---|
systat vmstat | Statistik memori dan paging |
systat netstat | Lalu lintas network |
systat iostat | Statistik I/O disk |
systat swap | Pemakaian swap |
systat iostat disk0 disk1
KB/t tps KB/t tps
32.5 12.3 12.1 3.4Parameter dasar yang sering disesuaikan:
sysctl kern.maxvnodes
sysctl kern.maxfileskern.maxvnodes = 52326
kern.maxfiles = 10480sysctl -w kern.maxfiles=524288
sysctl -w kern.maxvnodes=262144NetBSD mengelola memori dengan rajin. Untuk beban yang banyak membaca/menulis, perhatikan cache dan paging:
sysctl vm.vm.vm_page_free_min
sysctl vm.vm.vm_page_free_targetvm.vm.vm_page_free_min = 512
vm.vm.vm_page_free_target = 2048Parameter network paling berpengaruh adalah buffer — terlalu kecil menyebabkan retransmisi, terlalu besar memakan memori:
sysctl net.inet.tcp.sendspace
sysctl net.inet.tcp.recvspacenet.inet.tcp.sendspace = 32768
net.inet.tcp.recvspace = 65536Untuk link berkecepatan tinggi (1 Gbps ke atas), naikkan sendspace:
sysctl -w net.inet.tcp.sendspace=131072Aturan praktis buffer TCP: sekitar Bandwidth x RTT (bandwidth-delay product). Untuk menentukan RTT, gunakan ping:
ping -c 5 10.0.0.2round-trip min/avg/max/stddev = 0.421/0.513/0.672/0.079 msWarning
Naikkan buffer network hanya jika benar-benar butuh — buffer besar memakan memori kernel per koneksi. Dengan ribuan koneksi, satu koneksi 128 KB berarti ratusan MB memori. Tuning harus proporsional dengan skala beban.
Perubahan sysctl -w hilang saat reboot. Untuk permanen, tulis di /etc/sysctl.conf — file ini dibaca saat boot:
kern.maxfiles=524288
kern.maxvnodes=262144
net.inet.tcp.sendspace=131072FFS menerima opsi mount yang memengaruhi performa. Melihat opsi aktif:
mount | grep ffs/dev/wd0e on /usr type ffs (local, nodevmtime, noatime)Opsi yang umum dipertimbangkan:
| Opsi | Efek |
|---|---|
noatime | Tidak memperbarui waktu akses — kurangi I/O tulis |
nodevmtime | Tidak menulis waktu ke perangkat — mirip noatime |
norelatime | Nonaktifkan relatime (default) |
Contoh menambah noatime di /etc/fstab untuk partisi /var yang sering dibaca:
/dev/wd0f /var ffs rw,noatime 1 2ZFS tersedia di NetBSD sebagai package (zfs). Keduanya punya kelebihan berbeda:
| Aspek | FFS | ZFS |
|---|---|---|
| Kematangan di NetBSD | Default, sangat matang | Port, stabil untuk penggunaan umum |
| Checksum data | Tidak otomatis | Ya (deteksi korupsi) |
| Snapshot | Melalui fsck -t | Bawaan, sangat mudah |
| RAID/volume | Butuh cciss/cgd + raframe | Bawaan (mirror, raidz) |
| Kompleksitas | Sederhana | Lebih kompleks |
cd /usr/pkgsrc/filesystems/zfs
make install clean| Langkah | Aksi |
|---|---|
| 1 | Ukur baseline dengan top, systat iostat, systat netstat |
| 2 | Identifikasi bottleneck dominan |
| 3 | Ubah satu parameter di /etc/sysctl.conf, lalu reboot atau sysctl -w |
| 4 | Ukur ulang dan bandingkan |
| 5 | Simpan hanya perubahan yang terbukti membantu |
Pada episode 19 ini, kalian telah memeras performa NetBSD: memantau sistem dengan top dan systat, melakukan tuning sysctl untuk kernel, VM, dan network, membuat tuning permanen di /etc/sysctl.conf, serta membandingkan FFS dengan ZFS untuk kebutuhan storage.
Inti yang harus dibawa pulang:
top (proses) dan systat iostat/netstat (I/O, network).kern.maxfiles, net.inet.tcp.sendspace — sesuaikan buffer dengan bandwidth-delay product./etc/sysctl.conf.Di episode 20 selanjutnya kita akan menyelami jiwa NetBSD: embedded, ARM, dan portability deep-dive — menjelajahi dukungan arsitektur seperti arm64, riscv, dan evbarm, membangun cross-arch, serta penggunaan pada SBC dan legacy hardware. Sampai jumpa di episode 20!