OS: Kernel Tuning & Performance
Kernel Tuning sebagai Tahap “Naik Level”
Pada tahap ini, mahasiswa tidak lagi sekedar mengamati sistem operasi, tetapi mulai mempengaruhi perilaku kernel secara sadar. Kernel tuning adalah proses mengubah parameter runtime kernel untuk menyesuaikan sistem terhadap karakteristik beban kerja (workload) tertentu—misalnya server web, database, router, atau sistem embedded.
Inti filosofi bab ini:
Kernel bukan kotak hitam. Ia dapat diatur, diukur, dan dievaluasi secara ilmiah.
Tuning bukan soal “mempercepat tanpa alasan”, melainkan:
- memahami bottleneck (CPU, memori, I/O, jaringan),
- mengajukan hipotesis,
- melakukan perubahan terkontrol,
- lalu memvalidasi dampaknya.
Pendekatan ini konsisten dengan peran mahasiswa sebagai Kernel Tinkerer dan System Builder dalam kerangka OBE.
sysctl — Mengendalikan Perilaku Kernel Secara Runtime
Konsep Akademik
sysctl adalah antarmuka user space untuk membaca dan mengubah parameter kernel runtime yang diekspos melalui pseudo filesystem /proc/sys. Perubahan dengan sysctl tidak memerlukan reboot, sehingga ideal untuk eksperimen dan observasi langsung.
Parameter sysctl mencakup:
- Kernel core behavior
- Memory management
- Networking stack
- Security & isolation
Secara konseptual, sysctl adalah knob yang mengatur bagaimana kernel mengambil keputusan.
Observasi Awal (Wajib sebelum Tuning)
sysctl -a | less
Perintah ini menampilkan seluruh parameter kernel aktif. Latihan mental: jangan mengubah apa pun dulu—baca, amati, dan pahami namanya.
Contoh parameter penting:
- kernel.sched_latency_ns
- vm.swappiness
- net.ipv4.tcp_congestion_control
Contoh Praktek Nyata: Optimasi Network Buffer
sudo sysctl -w net.core.rmem_max=16777216 sudo sysctl -w net.core.wmem_max=16777216
Makna OS:
- Kernel diizinkan menggunakan buffer lebih besar untuk socket,
- Cocok untuk high-throughput networking (server, router, mesh node).
Persistensi Konfigurasi
Agar bertahan setelah reboot:
sudo nano /etc/sysctl.d/99-custom.conf
Isi:
net.core.rmem_max=16777216 net.core.wmem_max=16777216
Aktifkan:
sudo sysctl --system
Scheduler Tuning — Mengatur Cara CPU Dibagi
Konsep Akademik
Scheduler Linux bertugas menentukan proses mana mendapat CPU, kapan, dan berapa lama. Ubuntu 24.04 menggunakan CFS (Completely Fair Scheduler), yang menyeimbangkan fairness dan responsiveness.
Parameter scheduler memengaruhi:
- interaktivitas sistem,
- latensi,
- throughput.
Observasi Dasar Scheduler
uptime top htop
Perhatikan:
- load average
- distribusi CPU per core
- proses dominan
Eksperimen Scheduler: Beban CPU
yes > /dev/null & yes > /dev/null &
Amati di htop.
Hentikan:
killall yes
Mahasiswa melihat langsung bagaimana scheduler bekerja, bukan hanya membacanya.
Tuning Contoh: Scheduler Latency
sudo sysctl -w kernel.sched_latency_ns=6000000
Interpretasi:
- Nilai lebih kecil → respons lebih cepat (desktop/interaktif),
- Nilai lebih besar → throughput lebih stabil (server batch).
Catatan penting: tidak ada nilai “paling benar”. Semua tergantung konteks sistem.
Memory Tuning — Mengelola RAM & Swap Secara Cerdas
Konsep Akademik
Linux menggunakan virtual memory, di mana RAM, cache, dan swap bekerja bersama. Kesalahan umum pemula adalah menganggap RAM penuh = RAM habis, padahal Linux agresif menggunakan cache.
Parameter utama:
- vm.swappiness
- vm.dirty_ratio
- vm.dirty_background_ratio
Observasi Memory
free -h vmstat 2
Fokus pada:
- available
- si/so (swap in/out)
Contoh Tuning Swappiness
sudo sysctl -w vm.swappiness=10
Makna OS:
- Kernel lebih memilih RAM daripada swap,
- Cocok untuk server dengan RAM cukup.
Persisten:
vm.swappiness=10
Eksperimen Aman
Jalankan beban memori:
stress --vm 2 --vm-bytes 512M --timeout 60s
Amati perubahan pada vmstat.
I/O Scheduler — Mengatur Akses Disk
Konsep Akademik
I/O scheduler menentukan urutan dan prioritas permintaan disk. Linux modern (NVMe/SSD) menggunakan scheduler sederhana karena hardware sudah pintar.
Cek scheduler aktif:
cat /sys/block/sda/queue/scheduler
Contoh output:
[mq-deadline] none
Eksperimen Mengganti Scheduler
echo none | sudo tee /sys/block/sda/queue/scheduler Realtime change, tanpa reboot.
Observasi Dampak I/O
iostat -xz 2
Perhatikan:
%util await
Mahasiswa belajar membaca disk bottleneck secara ilmiah.
Network Tuning — Mengoptimalkan Networking Stack
Konsep Akademik
Networking Linux sepenuhnya dikendalikan kernel:
- TCP/IP
- routing
- buffering
- congestion control
Ini adalah jembatan langsung ke OpenWRT dan mesh networking pada bab selanjutnya.
TCP Congestion Control
Cek algoritma aktif:
sysctl net.ipv4.tcp_congestion_control
Ganti ke BBR:
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
Verifikasi:
lsmod | grep bbr
Tuning TCP Buffer
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216" sudo sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
Makna OS:
- TCP lebih adaptif pada jaringan latency tinggi,
- Relevan untuk VM, VPN, dan mesh.
Refleksi Akademik (OBE-Oriented)
Setelah menyelesaikan bab ini, mahasiswa mampu:
- menjelaskan hubungan kernel parameter ↔ performa sistem,
- melakukan tuning berbasis observasi, bukan tebakan,
- mengevaluasi dampak tuning secara terukur,
- menghubungkan kernel tuning dengan server, embedded OS, dan network OS.
Ini bukan skill hafalan, melainkan kompetensi engineer.
Challenge Mandiri (Fun & Menantang)
- Bandingkan vm.swappiness=60 vs 10 pada workload sama
- Uji scheduler disk pada SSD vs HDD (VM berbeda)
- Analisis dampak BBR vs Cubic pada jaringan VM–OpenWRT
- Dokumentasikan tuning dalam bentuk engineering log, bukan cerita
Penutup
Kernel tuning adalah seni yang berbasis sains. Mahasiswa yang sampai pada tahap ini tidak lagi takut kernel, tetapi berdialog dengannya.
Jika Anda bisa mengatur kernel dengan percaya diri, Anda sudah melangkah dari user menjadi OS engineer.
Bab ini menjadi jembatan langsung menuju PRAKTIK — Kernel Tuning Lab dan dunia OpenWRT, routing, dan mesh networking berikutnya.