Difference between revisions of "OS: PRAKTIKUM — Kernel Tuning Lab"

From OnnoWiki
Jump to navigation Jump to search
(Created page with " PRAKTIKUM 6 — Kernel Tuning Lab Mengoptimalkan Kernel Linux untuk Beban Kerja Nyata Tujuan Praktikum Praktikum ini bertujuan memperkenalkan mahasiswa pada aktivitas kernel...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 +
==Mengoptimalkan Kernel Linux untuk Beban Kerja Nyata==
  
PRAKTIKUM 6 — Kernel Tuning Lab
+
==Tujuan Praktikum==
Mengoptimalkan Kernel Linux untuk Beban Kerja Nyata
 
Tujuan Praktikum
 
 
Praktikum ini bertujuan memperkenalkan mahasiswa pada aktivitas kernel tuning berbasis observasi dan pengukuran, bukan asumsi. Mahasiswa tidak hanya “mengubah parameter”, tetapi memahami hubungan antara workload, kernel subsystem, dan performa sistem secara kuantitatif.
 
Praktikum ini bertujuan memperkenalkan mahasiswa pada aktivitas kernel tuning berbasis observasi dan pengukuran, bukan asumsi. Mahasiswa tidak hanya “mengubah parameter”, tetapi memahami hubungan antara workload, kernel subsystem, dan performa sistem secara kuantitatif.
 +
 
Setelah menyelesaikan praktik ini, mahasiswa diharapkan mampu:
 
Setelah menyelesaikan praktik ini, mahasiswa diharapkan mampu:
Menganalisis bottleneck sistem (CPU, memori, I/O) berbasis data
+
* Menganalisis bottleneck sistem (CPU, memori, I/O) berbasis data
Melakukan kernel tuning yang aman tanpa compiling kernel
+
* Melakukan kernel tuning yang aman tanpa compiling kernel
Membandingkan performa sebelum dan sesudah tuning
+
* Membandingkan performa sebelum dan sesudah tuning
Menarik kesimpulan teknis berbasis benchmark
+
* Menarik kesimpulan teknis berbasis benchmark
 
Ini adalah kompetensi inti dari profil Kernel Tinkerer dalam peta kompetensi mata kuliah.
 
Ini adalah kompetensi inti dari profil Kernel Tinkerer dalam peta kompetensi mata kuliah.
Konteks Akademik Kernel Tuning
+
 
 +
==Konteks Akademik Kernel Tuning==
 
Dalam sistem operasi modern, kernel tuning adalah proses penyesuaian parameter runtime kernel agar lebih sesuai dengan karakteristik beban kerja (workload) tertentu. Kernel Linux dirancang generik agar dapat berjalan di berbagai skenario—server, embedded, desktop—namun konfigurasi default tidak selalu optimal untuk setiap kasus.
 
Dalam sistem operasi modern, kernel tuning adalah proses penyesuaian parameter runtime kernel agar lebih sesuai dengan karakteristik beban kerja (workload) tertentu. Kernel Linux dirancang generik agar dapat berjalan di berbagai skenario—server, embedded, desktop—namun konfigurasi default tidak selalu optimal untuk setiap kasus.
 +
 
Beberapa prinsip penting:
 
Beberapa prinsip penting:
Kernel ≠ statis → banyak parameter dapat diubah saat sistem berjalan
+
* Kernel ≠ statis → banyak parameter dapat diubah saat sistem berjalan
Tuning ≠ overclocking → fokus pada efisiensi, stabilitas, dan latensi
+
* Tuning ≠ overclocking → fokus pada efisiensi, stabilitas, dan latensi
Observasi → hipotesis → tuning → verifikasi adalah alur yang benar
+
* Observasi → hipotesis → tuning → verifikasi adalah alur yang benar
 +
 
 
Dalam konteks buku Sistem Operasi, praktik ini adalah kelanjutan alami dari:
 
Dalam konteks buku Sistem Operasi, praktik ini adalah kelanjutan alami dari:
BAB Arsitektur Kernel Linux
+
* BAB Arsitektur Kernel Linux
BAB Compile Kernel
+
* BAB Compile Kernel
PRAKTIK Kernel Module Lab
+
* PRAKTIK Kernel Module Lab
  
Persiapan Lingkungan Praktikum
+
==Persiapan Lingkungan Praktikum==
Spesifikasi Minimum VM
+
===Spesifikasi Minimum VM===
 
Gunakan Ubuntu Server 24.04 dengan konfigurasi:
 
Gunakan Ubuntu Server 24.04 dengan konfigurasi:
CPU: 2 core
+
* CPU: 2 core
RAM: 2–4 GB
+
* RAM: 2–4 GB
Disk: ≥ 40 GB (ext4)
+
* Disk: ≥ 40 GB (ext4)
Login sebagai user biasa (bukan root)
+
* Login sebagai user biasa (bukan root)
Instalasi Tool Benchmark & Monitoring
+
 
 +
===Instalasi Tool Benchmark & Monitoring===
 
Seluruh tool bersifat open source dan tersedia via APT:
 
Seluruh tool bersifat open source dan tersedia via APT:
sudo apt update
+
sudo apt update
sudo apt install -y sysstat stress-ng fio linux-tools-common linux-tools-$(uname -r)
+
sudo apt install -y sysstat stress-ng fio linux-tools-common linux-tools-$(uname -r)
 
Tool yang digunakan:
 
Tool yang digunakan:
stress-ng → simulasi workload
+
* stress-ng → simulasi workload
sysstat (vmstat, iostat, mpstat) → observasi kernel behavior
+
* sysstat (vmstat, iostat, mpstat) → observasi kernel behavior
fio → benchmark disk I/O
+
* fio → benchmark disk I/O
perf → observasi performa kernel (opsional lanjutan)
+
* perf → observasi performa kernel (opsional lanjutan)
Observasi Awal (Baseline Measurement)
+
 
Snapshot Kondisi Sistem Awal
+
==Observasi Awal (Baseline Measurement)==
 +
===Snapshot Kondisi Sistem Awal===
 
Sebelum tuning apapun, rekam kondisi awal sistem.
 
Sebelum tuning apapun, rekam kondisi awal sistem.
uname -a
+
uname -a
uptime
+
uptime
free -h
+
free -h
vmstat 1 5
+
vmstat 1 5
iostat -xz 1 5
+
iostat -xz 1 5
 
Catat:
 
Catat:
load average
+
* load average
memory available
+
* memory available
swap usage
+
* swap usage
I/O wait (%wa)
+
* I/O wait (%wa)
 
Prinsip akademik penting
 
Prinsip akademik penting
Tanpa baseline, tuning tidak bermakna.
+
Tanpa baseline, tuning tidak bermakna.
Simulasi Workload Server
+
 
 +
===Simulasi Workload Server===
 
Simulasi Beban CPU
 
Simulasi Beban CPU
 
+
stress-ng --cpu 2 --timeout 60s
stress-ng --cpu 2 --timeout 60s
 
 
Amati:
 
Amati:
top atau htop
+
top atau htop
mpstat -P ALL 1
+
mpstat -P ALL 1
 
Perhatikan distribusi beban CPU dan scheduler behavior.
 
Perhatikan distribusi beban CPU dan scheduler behavior.
Simulasi Tekanan Memori
 
  
stress-ng --vm 1 --vm-bytes 80% --timeout 60s
+
===Simulasi Tekanan Memori===
 +
stress-ng --vm 1 --vm-bytes 80% --timeout 60s
 
Amati:
 
Amati:
free -h
+
free -h
vmstat 1
+
vmstat 1
 
Indikator penting:
 
Indikator penting:
swap in / swap out
+
* swap in / swap out
run queue (r)
+
* run queue (r)
Simulasi Disk I/O
 
  
fio --name=randwrite --ioengine=libaio --rw=randwrite \
+
===Simulasi Disk I/O===
--bs=4k --numjobs=1 --size=1G --runtime=60 --group_reporting
+
fio --name=randwrite --ioengine=libaio --rw=randwrite \
 +
--bs=4k --numjobs=1 --size=1G --runtime=60 --group_reporting
 
Amati:
 
Amati:
iostat -xz 1
+
iostat -xz 1
  
Kernel Tuning (Aman & Runtime)
+
==Kernel Tuning (Aman & Runtime)==
Tuning Virtual Memory (Swappiness)
+
===Tuning Virtual Memory (Swappiness)===
 
Cek nilai default:
 
Cek nilai default:
cat /proc/sys/vm/swappiness
+
cat /proc/sys/vm/swappiness
 
Ubah (runtime):
 
Ubah (runtime):
sudo sysctl vm.swappiness=10
+
sudo sysctl vm.swappiness=10
 
Makna akademik
 
Makna akademik
Nilai lebih rendah → kernel lebih menghindari swap, cocok untuk server dengan RAM cukup.
+
Nilai lebih rendah → kernel lebih menghindari swap, cocok untuk server dengan RAM cukup.
Tuning Dirty Page Writeback
 
  
sudo sysctl vm.dirty_ratio=15
+
===Tuning Dirty Page Writeback===
sudo sysctl vm.dirty_background_ratio=5
+
sudo sysctl vm.dirty_ratio=15
 +
sudo sysctl vm.dirty_background_ratio=5
 
Efek:
 
Efek:
Writeback lebih terkontrol
+
* Writeback lebih terkontrol
Latensi I/O lebih stabil
+
* Latensi I/O lebih stabil
Tuning Scheduler (Latency Awareness)
 
  
cat /proc/sys/kernel/sched_latency_ns
+
==Tuning Scheduler (Latency Awareness)==
cat /proc/sys/kernel/sched_min_granularity_ns
+
cat /proc/sys/kernel/sched_latency_ns
 +
cat /proc/sys/kernel/sched_min_granularity_ns
 
(Untuk observasi saja, tidak diubah pada level dasar demi keamanan lab.)
 
(Untuk observasi saja, tidak diubah pada level dasar demi keamanan lab.)
Benchmark Ulang (After Tuning)
+
 
 +
===Benchmark Ulang (After Tuning)===
 
Ulangi workload yang sama seperti Observasi Awal (Baseline Measurement)
 
Ulangi workload yang sama seperti Observasi Awal (Baseline Measurement)
stress-ng CPU
+
stress-ng CPU
stress-ng memory
+
stress-ng memory
fio disk
+
fio disk
 
Bandingkan:
 
Bandingkan:
load average
+
* load average
swap usage
+
* swap usage
I/O wait
+
* I/O wait
responsiveness system
+
* responsiveness system
  
Bandingkan Before vs After
+
===Bandingkan Before vs After===
 
Mahasiswa dianjurkan membuat tabel sederhana:
 
Mahasiswa dianjurkan membuat tabel sederhana:
Parameter
 
Sebelum
 
Sesudah
 
Swap usage
 
Tinggi
 
Rendah
 
I/O wait
 
30%
 
12%
 
Respons SSH
 
Lambat
 
Stabil
 
  
 +
{| class="wikitable"
 +
! Parameter !! Sebelum !! Sesudah
 +
|-
 +
| Swap usage || Tinggi || Rendah
 +
|-
 +
| I/O wait || 30% || 12%
 +
|-
 +
| Respons SSH || Lambat || Stabil
 +
|}
  
  
 +
==Analisis Akademik==
 +
Dalam praktik ini, mahasiswa belajar bahwa:
 +
* Kernel tuning bersifat kontekstual, bukan universal
 +
* Parameter kernel adalah trade-off
 +
* Observasi lebih penting daripada “resep”
 +
Ini menegaskan filosofi buku:
 +
Kernel adalah sistem hidup yang bereaksi terhadap beban kerja.
  
 +
==Refleksi OBE==
 +
Setelah praktik ini, mahasiswa telah menunjukkan:
 +
* ✅ Kemampuan analisis performa OS
 +
* ✅ Pemahaman runtime kernel behavior
 +
* ✅ Keterampilan tuning berbasis data
 +
* ✅ Mental engineer, bukan sekadar user
  
 +
==Challenge Mandiri (Fun & Menantang)==
 +
* Bandingkan vm.swappiness = 10 vs 60
 +
* Uji tuning di VM RAM kecil (1 GB)
 +
* Logging hasil benchmark ke CSV
 +
* Visualisasi sederhana (gnuplot / spreadsheet)
  
 
+
==Penutup==
 
 
Analisis Akademik
 
Dalam praktik ini, mahasiswa belajar bahwa:
 
Kernel tuning bersifat kontekstual, bukan universal
 
Parameter kernel adalah trade-off
 
Observasi lebih penting daripada “resep”
 
Ini menegaskan filosofi buku:
 
Kernel adalah sistem hidup yang bereaksi terhadap beban kerja.
 
Refleksi OBE
 
Setelah praktik ini, mahasiswa telah menunjukkan:
 
✅ Kemampuan analisis performa OS
 
✅ Pemahaman runtime kernel behavior
 
✅ Keterampilan tuning berbasis data
 
✅ Mental engineer, bukan sekadar user
 
Challenge Mandiri (Fun & Menantang)
 
Bandingkan vm.swappiness = 10 vs 60
 
Uji tuning di VM RAM kecil (1 GB)
 
Logging hasil benchmark ke CSV
 
Visualisasi sederhana (gnuplot / spreadsheet)
 
Penutup
 
 
Kernel tuning bukan sihir, melainkan dialog antara engineer dan sistem operasi.
 
Kernel tuning bukan sihir, melainkan dialog antara engineer dan sistem operasi.
 
Mahasiswa yang menyelesaikan lab ini telah melangkah dari Linux user menuju Linux system engineer.
 
Mahasiswa yang menyelesaikan lab ini telah melangkah dari Linux user menuju Linux system engineer.
 
  
 
==Pranala Menarik==
 
==Pranala Menarik==
  
 
* [[Sistem operasi]]
 
* [[Sistem operasi]]

Latest revision as of 16:52, 14 February 2026

Mengoptimalkan Kernel Linux untuk Beban Kerja Nyata

Tujuan Praktikum

Praktikum ini bertujuan memperkenalkan mahasiswa pada aktivitas kernel tuning berbasis observasi dan pengukuran, bukan asumsi. Mahasiswa tidak hanya “mengubah parameter”, tetapi memahami hubungan antara workload, kernel subsystem, dan performa sistem secara kuantitatif.

Setelah menyelesaikan praktik ini, mahasiswa diharapkan mampu:

  • Menganalisis bottleneck sistem (CPU, memori, I/O) berbasis data
  • Melakukan kernel tuning yang aman tanpa compiling kernel
  • Membandingkan performa sebelum dan sesudah tuning
  • Menarik kesimpulan teknis berbasis benchmark

Ini adalah kompetensi inti dari profil Kernel Tinkerer dalam peta kompetensi mata kuliah.

Konteks Akademik Kernel Tuning

Dalam sistem operasi modern, kernel tuning adalah proses penyesuaian parameter runtime kernel agar lebih sesuai dengan karakteristik beban kerja (workload) tertentu. Kernel Linux dirancang generik agar dapat berjalan di berbagai skenario—server, embedded, desktop—namun konfigurasi default tidak selalu optimal untuk setiap kasus.

Beberapa prinsip penting:

  • Kernel ≠ statis → banyak parameter dapat diubah saat sistem berjalan
  • Tuning ≠ overclocking → fokus pada efisiensi, stabilitas, dan latensi
  • Observasi → hipotesis → tuning → verifikasi adalah alur yang benar

Dalam konteks buku Sistem Operasi, praktik ini adalah kelanjutan alami dari:

  • BAB Arsitektur Kernel Linux
  • BAB Compile Kernel
  • PRAKTIK Kernel Module Lab

Persiapan Lingkungan Praktikum

Spesifikasi Minimum VM

Gunakan Ubuntu Server 24.04 dengan konfigurasi:

  • CPU: 2 core
  • RAM: 2–4 GB
  • Disk: ≥ 40 GB (ext4)
  • Login sebagai user biasa (bukan root)

Instalasi Tool Benchmark & Monitoring

Seluruh tool bersifat open source dan tersedia via APT:

sudo apt update
sudo apt install -y sysstat stress-ng fio linux-tools-common linux-tools-$(uname -r)

Tool yang digunakan:

  • stress-ng → simulasi workload
  • sysstat (vmstat, iostat, mpstat) → observasi kernel behavior
  • fio → benchmark disk I/O
  • perf → observasi performa kernel (opsional lanjutan)

Observasi Awal (Baseline Measurement)

Snapshot Kondisi Sistem Awal

Sebelum tuning apapun, rekam kondisi awal sistem.

uname -a
uptime
free -h
vmstat 1 5
iostat -xz 1 5

Catat:

  • load average
  • memory available
  • swap usage
  • I/O wait (%wa)

Prinsip akademik penting

Tanpa baseline, tuning tidak bermakna.

Simulasi Workload Server

Simulasi Beban CPU

stress-ng --cpu 2 --timeout 60s

Amati:

top atau htop
mpstat -P ALL 1

Perhatikan distribusi beban CPU dan scheduler behavior.

Simulasi Tekanan Memori

stress-ng --vm 1 --vm-bytes 80% --timeout 60s

Amati:

free -h
vmstat 1

Indikator penting:

  • swap in / swap out
  • run queue (r)

Simulasi Disk I/O

fio --name=randwrite --ioengine=libaio --rw=randwrite \
--bs=4k --numjobs=1 --size=1G --runtime=60 --group_reporting

Amati:

iostat -xz 1

Kernel Tuning (Aman & Runtime)

Tuning Virtual Memory (Swappiness)

Cek nilai default:

cat /proc/sys/vm/swappiness

Ubah (runtime):

sudo sysctl vm.swappiness=10

Makna akademik

Nilai lebih rendah → kernel lebih menghindari swap, cocok untuk server dengan RAM cukup.

Tuning Dirty Page Writeback

sudo sysctl vm.dirty_ratio=15
sudo sysctl vm.dirty_background_ratio=5

Efek:

  • Writeback lebih terkontrol
  • Latensi I/O lebih stabil

Tuning Scheduler (Latency Awareness)

cat /proc/sys/kernel/sched_latency_ns
cat /proc/sys/kernel/sched_min_granularity_ns

(Untuk observasi saja, tidak diubah pada level dasar demi keamanan lab.)

Benchmark Ulang (After Tuning)

Ulangi workload yang sama seperti Observasi Awal (Baseline Measurement)

stress-ng CPU
stress-ng memory
fio disk

Bandingkan:

  • load average
  • swap usage
  • I/O wait
  • responsiveness system

Bandingkan Before vs After

Mahasiswa dianjurkan membuat tabel sederhana:

Parameter Sebelum Sesudah
Swap usage Tinggi Rendah
I/O wait 30% 12%
Respons SSH Lambat Stabil


Analisis Akademik

Dalam praktik ini, mahasiswa belajar bahwa:

  • Kernel tuning bersifat kontekstual, bukan universal
  • Parameter kernel adalah trade-off
  • Observasi lebih penting daripada “resep”

Ini menegaskan filosofi buku:

Kernel adalah sistem hidup yang bereaksi terhadap beban kerja.

Refleksi OBE

Setelah praktik ini, mahasiswa telah menunjukkan:

  • ✅ Kemampuan analisis performa OS
  • ✅ Pemahaman runtime kernel behavior
  • ✅ Keterampilan tuning berbasis data
  • ✅ Mental engineer, bukan sekadar user

Challenge Mandiri (Fun & Menantang)

  • Bandingkan vm.swappiness = 10 vs 60
  • Uji tuning di VM RAM kecil (1 GB)
  • Logging hasil benchmark ke CSV
  • Visualisasi sederhana (gnuplot / spreadsheet)

Penutup

Kernel tuning bukan sihir, melainkan dialog antara engineer dan sistem operasi. Mahasiswa yang menyelesaikan lab ini telah melangkah dari Linux user menuju Linux system engineer.

Pranala Menarik