Lewati ke konten utama
๐Ÿš€ nusa.id cloud server linux indonesialihat paket

Cara Membuat Swap File di Ubuntu 24.04

ยท 7 menit membaca

Server Anda bisa mengalami masalah saat RAM penuh, menyebabkan layanan terhenti atau dihentikan secara paksa oleh sistem operasi (OOM Killer). Swap file menyelesaikan masalah ini dengan menyediakan ruang tambahan di disk yang berfungsi sebagai memori cadangan.

Menggunakan swap memberikan jaring pengaman agar server tidak langsung crash saat lonjakan traffic tiba-tiba. Panduan ini menggunakan Nusa Cloud VPS sebagai lingkungan pengujian, namun langkah-langkahnya berlaku untuk server Linux berbasis Ubuntu pada umumnya.

Requirementsโ€‹

Sebelum memulai proses, siapkan kebutuhan dasar berikut:

  • Akses terminal ke server dengan user root atau user dengan hak akses sudo.
  • Ruang penyimpanan kosong di disk (disarankan minimal sama dengan jumlah RAM, misalnya 1GB).
  • Package util-linux yang memuat perintah dasar seperti fallocate dan mkswap. Package ini biasanya sudah terinstal secara default di Ubuntu.

Environmentโ€‹

Panduan ini divalidasi dan diuji pada lingkungan berikut:

  • OS: Ubuntu 24.04 LTS
  • Kernel util-linux version: 2.39.3
  • Target: Bare metal atau KVM VPS (Bukan container seperti LXC atau Docker)

Panduan Ukuran Swap Fileโ€‹

Menentukan ukuran swap file merupakan langkah penting untuk menjaga performa. Ukuran yang terlalu kecil tidak akan banyak membantu saat lonjakan traffic, sementara ukuran yang terlalu besar hanya membuang ruang disk tanpa manfaat nyata, mengingat kecepatan disk jauh di bawah kecepatan RAM.

Berikut panduan referensi ukuran swap file yang disarankan untuk lingkungan produksi:

  • RAM kurang dari 2GB: Ukuran swap disarankan 2 kali lipat dari RAM.
  • RAM antara 2GB hingga 8GB: Ukuran swap disarankan sama dengan jumlah RAM.
  • RAM di atas 8GB: Ukuran swap 4GB sudah cukup aman sebagai pengaman.

Cara Membuat Swap File Ubuntu 24.04โ€‹

Langkah pertama adalah mengecek ketersediaan ruang disk dan memastikan tidak ada swap yang aktif.

sudo swapon --show

Jika tidak ada output, berarti belum ada alokasi swap yang aktif di server tersebut.

Buat file kosong yang akan digunakan sebagai swap space. Kita menggunakan utilitas fallocate karena perintah ini mampu mengalokasikan ruang disk secara cepat. Contoh di bawah ini membuat file sebesar 1GB:

sudo fallocate -l 1G /swapfile

โš ๏ธ Peringatan: Pastikan ruang disk Anda masih cukup lega sebelum mengalokasikan file. Menghabiskan seluruh kapasitas disk bisa menyebabkan server macet karena log dan aplikasi tidak bisa menulis data.

Ubah permission file tersebut sehingga hanya root yang bisa membaca dan menulis data ke dalamnya. Ini adalah perlindungan standar agar user reguler tidak dapat mengintip isi memori dari proses lain.

sudo chmod 600 /swapfile

Format file yang baru dibuat agar memiliki struktur swap space yang dikenali oleh sistem operasi Ubuntu 24.04:

sudo mkswap /swapfile

Output yang diharapkan:

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=1b9381de-aac7-442c-bcef-9c409b155cbd

Setelah berformat swap, aktifkan file tersebut di level kernel:

sudo swapon /swapfile

Verifikasi Instalasi Swap di Ubuntu 24.04โ€‹

Sekarang Anda perlu memastikan bahwa sistem kernel Ubuntu 24.04 sudah mulai mengenali dan membaca swap space.

Gunakan utilitas swapon dengan opsi --show:

sudo swapon --show

Output yang diharapkan kurang lebih seperti ini:

NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2

Anda juga dapat melihat representasi visual dari total memori yang digunakan melalui perintah free:

free -h

Pada baris paling bawah bernama Swap:, nilai total sebesar 1.0G harus tertera dengan indikator pemakaian (used) yang saat ini mungkin masih 0B.

Konfigurasi Dasar dan Fstabโ€‹

Langkah yang Anda lakukan sejauh ini bersifat sementara. Jika server direstart, alokasi swap tersebut tidak akan dimuat kembali. Agar swap selalu otomatis aktif setelah server booting, tambahkan entri pendaftaran ke file konfigurasi tabel filesistem.

Gunakan perintah ini untuk memasukkan baris baru secara langsung:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Buka file menggunakan text editor pilihan Anda untuk melihat baris konfigurasi sudah tersimpan dengan benar:

# Menggunakan nano:
nano /etc/fstab

# Menggunakan vim:
vim /etc/fstab

โš ๏ธ Peringatan: Kesalahan saat mengubah format pada /etc/fstab bisa membuat Ubuntu 24.04 gagal booting dan tertahan di emergency mode.

Tuning Parameter Kernel: Swappiness dan VFS Cacheโ€‹

Performa VPS dapat ditingkatkan lebih jauh dengan mengatur seberapa sering sistem akan memindahkan halaman dari memori utama ke file swap.

Parameter vm.swappiness menentukan frekuensi pemindahan data dari RAM fisik ke disk. Nilai 0 berarti kernel akan sebisa mungkin tidak memindahkan apapun ke disk, sedangkan 100 berarti proses pemindahan halaman memori sangat sering terjadi. Nilai bawaan di Ubuntu adalah 60.

Untuk server produksi yang menjalankan web server atau database, disarankan menurunkan nilai ini menjadi 10. Sistem akan memprioritaskan penyimpanan di memori utama yang cepat, dan baru memakai disk saat situasi darurat.

Cek nilai swappiness saat ini:

cat /proc/sys/vm/swappiness

Selain swappiness, perhatikan parameter vm.vfs_cache_pressure. Nilai ini mengatur kecenderungan kernel melepaskan data inode dan direktori yang di-cache di memori. Nilai bawaan adalah 100. Untuk server dengan spesifikasi rendah, Anda bisa menurunkannya ke angka 50 agar cache struktur direktori lebih tahan lama di memori dan proses penjelajahan file menjadi lebih responsif.

Simpan kedua parameter tersebut secara permanen. Buat file konfigurasi spesifik menggunakan tee:

sudo tee /etc/sysctl.d/99-swap-tuning.conf > /dev/null << 'EOF'
vm.swappiness=10
vm.vfs_cache_pressure=50
EOF

Jalankan perintah berikut untuk mereload pengaturan dan menerapkan parameter langsung pada kernel tanpa perlu merestart server:

sudo sysctl -p /etc/sysctl.d/99-swap-tuning.conf

Pengujian Fungsionalโ€‹

Untuk memastikan swap file mampu menangani lonjakan penggunaan memori secara optimal, kita akan memaksa server mengkonsumsi memori hingga mendekati batas kapasitas RAM fisik. Pengujian ini idealnya dilakukan pada lingkungan non-produksi.

Pertama, perbarui indeks paket dan pasang utilitas stress:

sudo apt update
sudo apt install stress

Simulasikan pemakaian beban tinggi pada memori, contoh ini mengalokasikan 1024MB RAM:

stress --vm 1 --vm-bytes 1024M --timeout 30s

Buka sesi koneksi SSH kedua menuju server yang sama. Gunakan monitor resource interaktif seperti htop atau watch free -h. Saat konsumsi aplikasi (stress test) mencapai batas RAM fisik, kernel otomatis memindahkan sekumpulan blok memori ke ruang disk yang sudah disiapkan. Anda dapat memverifikasi hal ini dengan mengamati angka pada baris Swap: USED yang perlahan meningkat. Ini membuktikan bahwa mekanisme pengamanan batas memori berfungsi dengan baik.

Cara Menghapus Swap File Secara Amanโ€‹

Jika Anda suatu saat perlu memindahkan file ke partisi lain, mengubah alokasi ukurannya, atau tidak lagi membutuhkannya, Anda harus menonaktifkannya terlebih dahulu.

Nonaktifkan sinkronisasi swap di sistem operasi:

sudo swapoff -v /swapfile

Buka /etc/fstab menggunakan editor teks Anda dan hapus entri /swapfile none swap sw 0 0. Ini memastikan sistem tidak mencoba mencari file tersebut pada saat proses booting berikutnya.

Terakhir, bebaskan ruang pada storage dengan menghapus file tersebut dari disk:

sudo rm /swapfile

Troubleshootingโ€‹

Berikut ini beberapa kendala yang mungkin terjadi saat Anda mengelola alokasi kapasitas RAM pada sistem Ubuntu 24.04:

1. Error: fallocate failed: Operation not supportedโ€‹

Gejala Umum: Perintah alokasi awal gagal dijalankan. Kemungkinan Penyebab: Filesistem bawaan Anda (misalnya ZFS atau varian sistem penyimpanan lainnya) mungkin tidak mendukung teknik pemesanan ruang disk secara cepat. Diagnostik: Periksa jenis filesistem Anda dengan menjalankan perintah df -T. Perbaikan: Gunakan utilitas standar dd untuk menghasilkan blok file.

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

Verifikasi: Cek hasil ukuran file menggunakan utilitas daftar file, misalnya dengan ls -lh /swapfile.

2. Swap Hilang Setelah Server Rebootโ€‹

Gejala Umum: Ruang memori cadangan kosong dan hasil swapon --show tidak memunculkan baris entri apapun sesudah tahap restart. Kemungkinan Penyebab: Syntax pada teks pendaftaran partisi /etc/fstab keliru, ada yang tidak pas, atau Anda sama sekali belum mendaftarkannya secara permanen. Diagnostik: Tinjau kembali isi baris teks yang baru saja Anda masukkan.

cat /etc/fstab | grep swap

Perbaikan: Benahi susunan konfigurasi tersebut. Format yang benar haruslah persis seperti ini: /swapfile none swap sw 0 0. Hindari kesalahan pemberian jeda tab atau spasi berlebih. Verifikasi: Lakukan pengujian pendaftaran secara real-time dengan menjalankan:

sudo mount -a

Apabila tidak muncul satupun pesan ralat dari sistem, artinya konfigurasi Anda sudah terstruktur secara tepat dan aman ketika di-reboot.