OS: Kernel Tuning & Performance
BAB 9. Kernel Tuning & Performance Pendahuluan: 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 6 — Kernel Tuning Lab dan dunia OpenWRT, routing, dan mesh networking berikutnya.