Lewati ke konten utama

Kalkulator Tuning Swap, Swappiness & Inode Disk Linux

Hitung ukuran swap optimal Linux, parameter sysctl vm.swappiness, vm.vfs_cache_pressure, estimasi jumlah inode ext4, dan generator skrip /swapfile.

Parameter Input

Coba Contoh:
GB
0.52048
GB
12000

Hasil Perhitungan

Rekomendasi Ukuran Swap
4 GB
Nilai Kernel vm.swappiness Optimal
20
Nilai Kernel vm.vfs_cache_pressure
75
Batas Sinkronisasi Memori Kotor (vm.dirty_ratio)
20 %
Batas Flush Latar Belakang (vm.dirty_background_ratio)
10 %
Estimasi Jumlah Inode Partisi ext4
13.107.200 Inode
Rasio Alokasi Byte per Inode
16.384 Byte
Rekomendasi Kapasitas Kompresi zram
8 GB
Ingin membandingkan 2 opsi desain (misal: RAIDZ1 vs RAIDZ2, atau Cat6 vs Cat5e)?
⚡ Standar Hardening & Operasional Produksi
Debian 12 / Ubuntu 24.04 LTS + Nftables + Systemd Timer
CIS Benchmark Level 1 • Non-Root SSH Key-Only + Fail2ban/CrowdSec

Uji aturan firewall dan skrip cron pada lingkungan staging terlebih dahulu, dan simpan backup konfigurasi di Git.

Tabel Perbandingan Parameter Berdasarkan Beban Kerja
Profil Beban KerjaRekomendasi Ukuran Swapvm.swappinessvm.vfs_cache_pressure
Database / Proxmox Hypervisor4 GB150
Web / Container Server (Docker/K8s)4 GB2075
Desktop / Workstation + Hibernation20 GB60100
Low-RAM Cloud VPS (1–4 GB)32 GB60100
Konfigurasi Tuning Kernel (/etc/sysctl.d/99-infracalc-memory.conf)
# /etc/sysctl.d/99-infracalc-memory.conf
# Profil: web_container | RAM: 16 GB | Disk: nvme_ssd
vm.swappiness = 20
vm.vfs_cache_pressure = 75
vm.dirty_ratio = 20
vm.dirty_background_ratio = 10
# Terapkan dengan: sudo sysctl --system
Skrip Pembuatan & Aktivasi /swapfile
# Buat dan aktifkan /swapfile di Linux
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Bagikan ke WhatsApp

Cara Menggunakan Alat Ini

  1. Masukkan kapasitas RAM fisik server (GB), pilih profil beban kerja (Database/Hypervisor, Web/Container, Desktop Hibernasi, atau VPS RAM kecil), dan jenis disk.
  2. Masukkan ukuran partisi penyimpanan ext4 (GB) untuk menghitung estimasi alokasi jumlah inode default.
  3. Tinjau rekomendasi ukuran swap, nilai vm.swappiness, vm.vfs_cache_pressure, lalu salin skrip /etc/sysctl.d/ dan perintah fallocate pembuatan swapfile.

Contoh Perhitungan Nyata: Server Web & Docker (16 GB RAM, 200 GB NVMe)

Contoh terhitung: Server dengan RAM 16 GB, profil Web/Container pada NVMe SSD, dan partisi 200 GB menghasilkan rekomendasi Swap 4 GB, vm.swappiness = 20, vm.vfs_cache_pressure = 75, serta sekitar 13.107.200 inode ext4.

Input Contoh
Kapasitas RAM Fisik Server (GB)
16 GB
Profil Beban Kerja Server (Workload)
Web / Container Server (Docker, Kubernetes, Nginx)
Jenis Media Penyimpanan Disk
NVMe SSD Enterprise / Cloud Block
Ukuran Partisi Penyimpanan ext4 (GB)
200 GB
Output Terhitung
Rekomendasi Ukuran Swap
4 GB
Nilai Kernel vm.swappiness Optimal
20
Nilai Kernel vm.vfs_cache_pressure
75
Batas Sinkronisasi Memori Kotor (vm.dirty_ratio)
20 %
Batas Flush Latar Belakang (vm.dirty_background_ratio)
10 %
Estimasi Jumlah Inode Partisi ext4
13.107.200 Inode
Rasio Alokasi Byte per Inode
16.384 Byte
Rekomendasi Kapasitas Kompresi zram
8 GB
Konfigurasi Tuning Kernel (/etc/sysctl.d/99-infracalc-memory.conf)
# /etc/sysctl.d/99-infracalc-memory.conf # Profil: web_container | RAM: 16 GB | Disk: nvme_ssd vm.swappiness = 20 vm.vfs_cache_pressure = 75 vm.dirty_ratio = 20 vm.dirty_background_ratio = 10 # Terapkan dengan: sudo sysctl --system
Skrip Pembuatan & Aktivasi /swapfile
# Buat dan aktifkan /swapfile di Linux sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Tabel Perbandingan Parameter Berdasarkan Beban Kerja
Profil Beban KerjaRekomendasi Ukuran Swapvm.swappinessvm.vfs_cache_pressure
Database / Proxmox Hypervisor4 GB150
Web / Container Server (Docker/K8s)4 GB2075
Desktop / Workstation + Hibernation20 GB60100
Low-RAM Cloud VPS (1–4 GB)32 GB60100

Konsep Dasar & Catatan Teknis

Manajemen memori virtual pada kernel Linux mengatur keseimbangan antara penggunaan RAM fisik berkecepatan tinggi, ruang swap pada media penyimpanan sekunder, dan page cache sistem berkas. Ruang swap berfungsi sebagai katup pengaman ketika beban kerja mengalami lonjakan alokasi memori tidak terduga (memory spike) serta sebagai tempat pemindahan halaman memori anonim yang jarang diakses (cold anonymous pages) agar RAM fisik dapat dimanfaatkan secara optimal untuk caching I/O disk yang aktif. Perilaku kernel Linux dalam memindahkan halaman memori ke ruang swap dikendalikan oleh parameter sysctl vm.swappiness yang memiliki rentang nilai 0 hingga 200 (default 60 pada sebagian besar distribusi). Nilai swappiness yang tinggi membuat kernel lebih agresif memindahkan halaman memori aplikasi ke disk, sedangkan nilai rendah seperti 1 hingga 10 menginstruksikan kernel untuk mempertahankan data aplikasi di dalam RAM selama mungkin. Pada server database (PostgreSQL, MySQL) dan node hypervisor (Proxmox VE, KVM), nilai vm.swappiness=1 sangat dianjurkan untuk mencegah latensi I/O akibat swapping tanpa memicu Out-Of-Memory (OOM) killer terlalu dini. Selain memori virtual, kapasitas sistem berkas ext4 di Linux dibatasi oleh jumlah struktur metadata inode yang dialokasikan saat partisi diformat menggunakan mke2fs. Secara default, ext4 membuat satu inode untuk setiap 16.384 byte (16 KiB) ruang disk. Apabila seluruh inode habis terpakai oleh jutaan berkas berukuran kecil (seperti cache kontainer, sesi aplikasi web, atau antrean mail), server akan melaporkan galat No space left on device meskipun ruang gigabyte masih tersisa banyak. Parameter pendamping yang tak kalah penting dalam penyetelan subsistem memori Linux adalah vm.vfs_cache_pressure, yang mengatur kecenderungan kernel dalam mereklamasi memori cache direktori (dentry) dan objek inode dibandingkan page cache. Pada nilai bawaan 100, kernel membebaskan dentry dan inode dengan laju yang dianggap seimbang. Namun, pada server penyimpanan berkas, web server dengan ratusan ribu file statis, atau node kontainer Docker/Kubernetes yang terus-menerus melakukan operasi pencarian jalur berkas (stat/lookup), menurunkan vm.vfs_cache_pressure ke kisaran 50 akan mempertahankan struktur metadata direktori lebih lama di dalam RAM sehingga menekan latensi I/O disk secara signifikan.

Cara Perhitungan (Rumus & Langkah)

Pertanyaan yang Sering Diajukan (FAQ)

Mengapa vm.swappiness=1 lebih disarankan daripada vm.swappiness=0 pada server database?

Pada kernel Linux modern, nilai 0 menonaktifkan swapping halaman anonim hampir sepenuhnya hingga batas memori bebas kritis, yang dapat memicu OOM Killer mematikan proses database secara tiba-tiba. Nilai 1 meminimalkan swap namun tetap menjaga perlindungan darurat.

Apa fungsi parameter vm.vfs_cache_pressure?

Parameter ini mengatur kecenderungan kernel merebut kembali memori yang digunakan untuk menyimpan cache objek direktori (dentry) dan inode. Menurunkannya ke 50–75 membantu mempercepat operasi pencarian file pada server web dan file server.

Bagaimana cara memeriksa penggunaan inode pada partisi Linux saat ini?

Jalankan perintah 'df -i' di terminal. Output tersebut menampilkan jumlah total Inodes, IUsed (terpakai), IFree (tersisa), dan persentase penggunaan IUse% untuk setiap mount point.

Apakah jumlah inode ext4 dapat diubah setelah partisi diformat?

Rasio byte-per-inode pada ext4 bersifat tetap setelah pembuatan filesystem dan hanya bertambah secara proporsional jika partisi diperbesar (resize2fs). Untuk mengubah rasio (misal -i 4096), partisi harus diformat ulang dengan mkfs.ext4.