Mengoptimalkan kinerja OpenBSD: menyesuaikan parameter kernel dengan sysctl dan loader.conf, memantau sistem dengan systat, top, dan netstat, hingga men-tuning buffer jaringan dan kinerja pf agar melayani trafik lebih banyak dan lebih stabil.

Di episode 18 sebelumnya, kalian menjalankan virtualisasi di atas OpenBSD. Sistem kalian sekarang punya banyak pekerjaan: firewall, web server, mail, dan VM. Pertanyaan yang muncul berikutnya: apakah sistem melayani semua itu dengan efisien? Episode ini membahas performance dan optimasi.
OpenBSD lebih dikenal karena keamanan daripada kecepatan — dan ini keputusan desain yang sadar. Namun ada banyak cara memastikan sistem memakai sumber dayanya dengan baik: membaca kondisi dengan alat monitoring, menyesuaikan parameter kernel dengan sysctl, dan mengukur kinerja pf. Ingat prinsipnya: ukur dulu, ubah sedikit-sedikit, ukur lagi.
Sebelum men-tuning, kalian harus tahu apa yang terjadi. Tiga alat bawaan yang paling penting:
top
systat cpu
systat netstat
systat vmstattop menampilkan proses paling boros CPU/memori.systat cpu menampilkan penggunaan CPU secara live.systat netstat menunjukkan trafik jaringan per antarmuka.systat vmstat menunjukkan aktivitas memori dan swap.netstat juga dipakai untuk koneksi dan statistik:
netstat -rn
netstat -i
netstat -an | grep LISTENnetstat -i menampilkan statistik per antarmuka — di sinilah kalian melihat paket yang terbuang atau error, tanda awal masalah hardware atau konfigurasi.
sysctl membaca dan mengubah parameter kernel saat runtime:
sysctl hw.physmem
sysctl kern.maxproc
sysctl net.inet.tcp.mssdfltUntuk mengubah sementara:
sysctl net.inet.tcp.recvspace=65536
sysctl kern.maxfiles=20000Agar permanen, tulis ke /etc/sysctl.conf:
net.inet.tcp.recvspace=65536
net.inet.tcp.sendspace=65536
kern.maxfiles=20000Setiap baris dibaca saat boot. Nilai default OpenBSD sudah waras — ubah hanya untuk kebutuhan spesifik, dan uji dampaknya.
Warning
Tuning yang berlebihan lebih sering merugikan daripada membantu. Ubah satu parameter, ukur dampaknya, lalu lanjut. Jika ragu, biarkan default — OpenBSD memilih default dengan alasan keamanan dan kestabilan, bukan sekadar kepraktisan.
Beberapa parameter hanya bisa diatur sebelum kernel boot, lewat /etc/boot.conf atau loader.conf. Contoh untuk memori dan perangkat:
set timeout 3Untuk parameter yang harus ada sejak kernel memuat (misalnya bsd.mp), gunakan loader di boot.conf. Dalam praktik, sebagian besar tuning harian cukup lewat sysctl — loader.conf untuk kasus yang sangat spesifik.
pf bukan tanpa biaya. Ukur kondisinya dengan:
pfctl -s info
pfctl -s rules -v
pfctl -s states | wc -lpfctl -s info menampilkan jumlah paket yang diproses, diblok, dan statistik evaluasi — gambaran beban firewall. pfctl -s states menghitung state aktif. Jika state membengkak, periksa aturan pass kalian dan max-src-conn (episode 13).
Buffer menentukan seberapa banyak data yang bisa ditampung kernel sebelum diproses. Untuk layanan yang melayani banyak koneksi, menaikkan ukuran buffer TCP sering membantu:
net.inet.tcp.recvspace=65536
net.inet.tcp.sendspace=65536
net.inet.tcp.mssdflt=1440
net.inet.tcp.rfc1323=1rfc1323 mengaktifkan window scaling — penting untuk throughput tinggi pada koneksi jarak jauh. Mulai dari nilai ini, lalu amati systat netstat untuk melihat apakah bufer penuh.
Untuk antrean dan proteksi overload, OpenBSD menyediakan pf queueing (altq) dan pengaturan max-src-*. Contoh sederhana membatasi bandwidth:
altq on egress cbq bandwidth 100Mb queue { web }
queue web bandwidth 80Mb
pass out on egress queue webQueue memastikan trafik penting (misalnya web) tidak kelaparan oleh trafik lain. Ini bagian dari performa yang berkelanjutan: firewall yang stabil dalam badai trafik.
Langkah praktis untuk server yang mulai terasa lambat:
top dan systat vmstat — siapa pemakan sumber daya?netstat -i untuk error antarmuka.pfctl -s info untuk beban firewall./etc/sysctl.conf jika diperlukan.Optimasi bukan balapan angka, melainkan menghilangkan hambatan yang nyata.
Info
Jika masalahnya jelas di satu layanan (misal httpd lambat), lihat konfigurasi layanan itu dulu sebelum menyalahkan kernel. Kadang jawabannya adalah health check relayd (episode 16) yang membanjiri backend, atau backup (episode 11) yang berjalan saat jam sibuk.
Di episode 19 ini kalian mengoptimalkan OpenBSD: memantau dengan top, systat, dan netstat, menyesuaikan parameter kernel dengan sysctl dan /etc/sysctl.conf, memakai loader.conf untuk parameter boot, serta mengukur dan men-tuning kinerja pf dan buffer jaringan.
Inti yang harus dibawa pulang:
top, systat, dan netstat sebelum mengubah apa pun.sysctl mengubah parameter saat runtime; /etc/sysctl.conf membuatnya permanen.pfctl -s info adalah dashboard beban firewall.Di episode 20 selanjutnya, kita akan memahami -current vs -stable & development — kapan memakai snapshot dan rilis stabil, mekanisme syspatch untuk patch keamanan, serta membangun dunia dari source dengan make build dan cvs/git.