Setiap program yang berjalan membutuhkan tempat kerja di RAM, dan RAM adalah komponen mahal yang kapasitasnya terbatas. Sebuah VPS dengan RAM 1 GB kehabisan ruang jauh lebih cepat daripada yang pemiliknya kira, terutama saat database dan web server berjalan bersamaan. Di titik itulah sistem operasi memerlukan tempat penampungan sementara, dan swap memory adalah jawabannya. Artikel ini membahas apa itu swap, ukuran yang sebenarnya dianjurkan, cara membuatnya, dan yang paling sering salah dipahami: cara membaca angkanya.

Swap Memory Adalah: Pengertian dan Bentuknya

Swap memory adalah ruang di media penyimpanan yang dipakai sistem operasi untuk menampung halaman memori yang menganggur, agar RAM tersedia untuk pekerjaan yang lebih mendesak. Ruang ini sering disebut juga swap space, dan dalam pembahasan yang lebih umum masuk ke istilah virtual memory (memori virtual). Penulisan terbalik memory swap merujuk benda yang sama.

Namanya berbeda-beda tergantung sistem operasinya. Linux dan keluarga Unix memakai istilah swap, Windows menyebutnya page file atau berkas halaman, dan macOS memakai istilah swap used. Ketiganya merujuk mekanisme yang sama.

Di Linux, swap tersedia dalam dua bentuk. Yang pertama adalah partisi swap, yaitu sebuah partisi disk tersendiri yang diformat khusus. Yang kedua adalah swap file, yaitu berkas biasa di dalam sistem berkas yang sudah ada. Pada kernel modern performa keduanya setara, tetapi swap file jauh lebih mudah diubah ukurannya karena tidak menuntut penataan ulang partisi.

Satu hal yang perlu diperhatikan sejak awal: swap berada di storage, bukan di dalam RAM. Perbedaan kecepatannya bukan soal persentase. SSD NVMe tercepat sekalipun masih puluhan sampai ratusan kali lebih lambat daripada RAM DDR4 termurah.

Cara Kerja Swap: Halaman Memori yang Dipindahkan

Setelah tahu apa itu swap, pertanyaan berikutnya adalah bagaimana ia bekerja. Sistem operasi tidak mengelola memori dalam satuan berkas atau aplikasi, melainkan dalam satuan page (halaman) yang berukuran 4 KB pada arsitektur x86-64. Setiap halaman dilacak kernel, termasuk kapan terakhir kali diakses.

Kernel membagi halaman itu menjadi dua kelompok. Halaman file-backed berisi salinan data yang sudah ada di disk, misalnya isi berkas program dan page cache. Halaman itu bisa dibuang kapan saja tanpa kehilangan apa pun. Halaman anonymous berisi data yang lahir di memori dan tidak punya salinan di mana pun, misalnya hasil alokasi memori sebuah aplikasi.

Di sinilah swap berperan. Tanpa swap, halaman anonymous tidak punya tujuan untuk dipindahkan, sehingga kernel terpaksa menahannya di RAM. Dengan adanya swap, kernel bisa menulis halaman anonymous yang lama tidak diakses ke storage — proses ini disebut page out. Saat aplikasi kembali menyentuh data tersebut, kernel membacanya kembali ke RAM lewat page in.

Empat tahap swap: RAM menipis, kernel memilih halaman anonymous menganggur, halaman ditulis ke swap, lalu dibaca lagi.Empat tahap swap: RAM menipis, kernel memilih halaman anonymous menganggur, halaman ditulis ke swap, lalu dibaca lagi.

Selama halaman yang dipindahkan memang menganggur, pembaca tidak merasakan apa-apa. Persoalan muncul ketika halaman yang baru ditulis ke swap langsung dibutuhkan lagi, berulang terus-menerus. Kondisi ini disebut thrashing, dan gejalanya adalah sistem yang terasa membeku padahal penggunaan CPU rendah.

Salah Kaprah Pertama: Swap Bukan RAM Cadangan

Penjelasan yang paling sering beredar menyebut swap sebagai "RAM tambahan darurat". Analogi itu terdengar masuk akal, tetapi menyesatkan dalam praktik, dan menjelaskan kenapa banyak orang mengambil keputusan yang keliru soal swap.

Sebutan swap RAM yang kadang dipakai orang memperkuat anggapan itu. Fungsi utama swap sebenarnya bukan menambah kapasitas, melainkan memberi kernel kesetaraan pilihan saat membebaskan memori. Tanpa swap, kernel hanya punya satu kelompok halaman yang boleh dibuang, yaitu yang file-backed. Halaman anonymous, sebanyak dan sejarang apa pun dipakai, terkunci di RAM sampai aplikasinya berhenti.

Akibatnya bertentangan dengan intuisi. Sistem tanpa swap tidak terbebas dari aktivitas disk saat memori menipis. Yang terjadi justru kernel membuang page cache yang masih panas dan segmen kode program yang sebentar lagi dibutuhkan. Beberapa detik kemudian semuanya dibaca ulang dari disk. Aktivitas disknya tidak hilang, hanya berpindah ke halaman yang justru lebih sering dipakai.

Tanpa swap (kiri) kernel hanya bisa membuang halaman file-backed; dengan swap (kanan) halaman anonymous ikut bisa pindah.Tanpa swap (kiri) kernel hanya bisa membuang halaman file-backed; dengan swap (kanan) halaman anonymous ikut bisa pindah.

Dua kesimpulan praktis mengikuti. Pertama, swap tidak membuat server ber-RAM 1 GB berperilaku seperti server ber-RAM 4 GB; ia hanya membuat sisa RAM dipakai lebih cerdas. Kedua, swap tidak bisa menambah VRAM kartu grafis, karena memori grafis dikelola jalur yang berbeda.

Berapa Ukuran Swap yang Sebaiknya Anda Buat

Aturan "swap = 2x RAM" masih sering diulang, padahal asalnya dari era ketika RAM komputer dihitung dalam satuan megabita. Daripada mengikuti aturan turun-temurun, lebih baik melihat angka yang benar-benar dipakai pemasang sistem operasi.

Pemasang Ubuntu memakai fungsi suggested_swapsize() di dalam curtin. Kode itu bisa dibaca siapa saja, dan berikut hasil menjalankan ulang formulanya, disandingkan dengan aturan akar kuadrat yang dianjurkan Ubuntu SwapFaq:

RAM (GiB)Pemasang UbuntuAkar kuadratMitos 2x RAM
1212
2214
4428
84316
164432
328664
648128

Seluruh angka dalam GiB.

Perhatikan dua hal. Pertama, ada batas keras 8 GiB yang tidak pernah dilewati berapa pun besar RAM-nya. Kedua, kedua panduan resmi Ubuntu sama-sama menjauh dari mitos 2x RAM begitu kapasitas melewati 1 GiB.

Ada satu aturan lagi di dalam kode itu: swap dibatasi maksimal 25 persen dari ruang disk yang tersisa. Kalau hasil hitungannya lebih kecil dari separuh RAM sekaligus di bawah 4 GiB, fungsinya mengembalikan nol. Pemasang memutuskan tidak membuat swap sama sekali.

Inilah penjelasan untuk keluhan "kenapa VPS saya tidak punya swap":

RAM (GiB)Sisa disk (GiB)Swap dibuat (GiB)
8100
8204
16100
16254

Untuk pembaca yang mengelola VPS kecil, angka praktisnya sederhana. RAM 1–2 GB berikan swap 2 GB, RAM 4 GB berikan 2–4 GB, dan di atas 8 GB cukup 4 GB. Satu pengecualian berlaku untuk laptop yang memakai hibernasi: swap harus minimal sebesar RAM, karena seluruh isi memori ditulis ke sana.

Cara Mengecek Swap Memory Linux dan Proses Pemakainya

Cara tercepat melihat kondisi swap adalah free dengan opsi -h:

Bash
free -h

Baris Swap menampilkan tiga angka: total, terpakai, dan sisa. Untuk mengetahui swap itu berbentuk partisi atau berkas, beserta prioritasnya, gunakan perintah berikut:

Bash
swapon --show

Keluarannya menyebut jalur, tipe (partition atau file), ukuran, jumlah terpakai, dan prioritas. Kalau perintah ini tidak mengeluarkan apa-apa, sistem Anda memang berjalan tanpa swap.

Yang tidak dijawab kedua perintah di atas adalah pertanyaan lanjutan yang biasanya lebih penting: proses mana yang halamannya berada di swap. Kernel menyediakan jawabannya lewat kolom VmSwap di berkas status tiap proses. Perintah berikut mengurutkan proses berdasarkan pemakaian swap terbesar:

Bash
for f in /proc/[0-9]*/status; do
    awk '/^Name:/{n=$2} /^VmSwap:/{if ($2>0) printf "%9d kB  %s\n", $2, n}' "$f"
done | sort -rn | head

Keluarannya berupa daftar nama proses beserta jumlah kilobita miliknya yang berada di swap. Proses tanpa halaman di swap otomatis tidak ditampilkan. Jalankan dengan sudo agar proses milik pengguna lain ikut terbaca.

Cara Membuat Swap File di Linux

Membuat swap file jauh lebih ringan daripada membuat partisi, dan bisa dilakukan tanpa restart.

Langkah #1: Membuat berkas kosong

Alokasikan berkas sebesar swap yang diinginkan. Contoh berikut membuat berkas 2 GB:

Bash
sudo fallocate -l 2G /swapfile

Kalau fallocate tidak tersedia atau sistem berkas Anda menolaknya, pakai dd yang lebih lambat tetapi paling kompatibel:

Bash
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

Jangan memakai cp atau truncate untuk membuat berkas swap. Keduanya menghasilkan berkas berlubang (sparse file), dan berkas semacam itu akan ditolak oleh swapon.

Langkah #2: Mengunci izin aksesnya

Isi swap dapat memuat potongan data yang sedang diolah aplikasi, termasuk yang sensitif. Berkasnya hanya boleh dibaca root:

Bash
sudo chmod 600 /swapfile

Langkah #3: Memformat berkas sebagai area swap

Perintah mkswap menuliskan header agar berkas biasa dikenali kernel sebagai area swap:

Bash
sudo mkswap /swapfile

Sejak util-linux versi 2.41, tiga langkah pertama bisa diringkas menjadi satu perintah: sudo mkswap --size 2G --file /swapfile. Bentuk ini sekaligus memasang izin berkas yang benar, mengalokasikan bloknya, dan memberi atribut nocow yang dibutuhkan Btrfs.

Langkah #4: Mengaktifkan swap

Aktifkan berkas tersebut, lalu pastikan terbaca sistem:

Bash
sudo swapon /swapfile
swapon --show

Kalau baris /swapfile muncul dengan tipe file, swap sudah aktif dan langsung dipakai kernel.

Langkah #5: Membuatnya bertahan setelah reboot

Perintah swapon hanya berlaku sampai sistem dimatikan. Agar aktif otomatis, tambahkan satu baris ke /etc/fstab:

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

Ada tiga batasan sistem berkas yang perlu Anda ketahui. Swap file di Btrfs membutuhkan kernel 5.0 atau lebih baru dan berkas beratribut nocow. XFS mendukung berkas terpra-alokasi sejak kernel 4.18. ZFS tidak bisa dipakai sama sekali, sehingga penggunanya harus memakai partisi swap tersendiri.

Swap Penuh Tapi Server Baik-Baik Saja: Cara Membaca Angkanya

Pemantau server rutin mengirim peringatan seperti "swap utilization exceeds 95 percent", dan banyak orang langsung menambah RAM karenanya. Padahal persentase swap terpakai adalah metrik yang menyesatkan.

Alasannya ada pada sifat swap itu sendiri. Halaman yang sudah ditulis ke swap tidak dihapus ketika RAM kembali lega, karena menghapusnya tidak memberi keuntungan apa pun. Server yang mengalami lonjakan beban dua minggu lalu bisa menunjukkan swap 100 persen terpakai hari ini sambil berjalan normal.

Angka yang benar-benar menentukan adalah laju perpindahan halaman, bukan jumlah yang mengendap. Perintah vmstat menampilkannya di kolom si (swap in) dan so (swap out), keduanya dalam kilobita per detik:

Swap 100% terpakai dengan si dan so nol tetap sehat (kiri); si dan so terus di atas nol berarti RAM kurang (kanan).Swap 100% terpakai dengan si dan so nol tetap sehat (kiri); si dan so terus di atas nol berarti RAM kurang (kanan).

Bash
vmstat 5

Abaikan baris pertama, karena isinya rata-rata sejak sistem dinyalakan. Baris berikutnya barulah kondisi sekarang, dan cara membacanya:

si/soArtinyaTindakan
Selalu 0Swap diam. Sehat.Tidak ada
Sesekali bergerakTugas latar berjalanAmati
Terus > 0 bermenit-menitRAM kurang, mendekati thrashingTambah RAM

Kondisi kebalikannya juga sering ditanyakan: swap terpasang tetapi angkanya nol terus. Itu bukan tanda swap rusak, melainkan tanda RAM Anda memang mencukupi.

Perintah vmstat hanya menampilkan kondisi sekarang. Untuk riwayat beberapa hari ke belakang, gunakan sar -W yang dibahas di artikel SAR adalah perintah pemantau performa server. Kolom pswpin/s dan pswpout/s di sana adalah versi tersimpan dari si dan so.

Kalau Anda tetap ingin mengosongkan swap, misalnya setelah menambah RAM, matikan lalu nyalakan kembali:

Bash
sudo swapoff -a && sudo swapon -a

Perintah ini memaksa seluruh isi swap kembali ke RAM sekaligus. Jalankan hanya kalau RAM bebas Anda lebih besar daripada swap yang terpakai. Kalau tidak, sistem bisa kehabisan memori dan kernel akan mematikan proses secara paksa.

Menyetel Swappiness dan Mengenal zram

Perilaku swap Linux diatur parameter vm.swappiness. Penjelasan yang paling sering beredar menyebutnya sebagai persentase sisa RAM sebelum swap mulai dipakai. Nilai 60 lalu dibaca sebagai "swap dipakai ketika RAM tersisa 40 persen". Penjelasan itu tidak benar.

Dokumentasi kernel mendefinisikannya sebagai biaya I/O relatif antara melakukan swap dan membaca ulang berkas dari sistem berkas. Rentangnya 0 sampai 200, bukan 0 sampai 100 seperti yang banyak disebut, dengan nilai bawaan 60. Pada nilai 100, kernel menganggap biaya kedua jenis operasi itu setara.

Dengan definisi ini nilainya lebih mudah dibaca. Nilai rendah memberi tahu kernel bahwa swap di mesin ini mahal, sehingga kernel lebih memilih membuang page cache. Nilai tinggi berarti sebaliknya. Nilai 0 bukan berarti swap dimatikan; kernel tetap memakainya saat halaman bebas turun di bawah batas aman.

Skala vm.swappiness 0 sampai 200: nilai 10 untuk database, 60 bawaan, 100 biaya setara, 100-180 untuk mesin dengan zram.Skala vm.swappiness 0 sampai 200: nilai 10 untuk database, 60 bawaan, 100 biaya setara, 100-180 untuk mesin dengan zram.

Berikut angka yang bisa Anda pakai sebagai titik awal:

Peran mesinNilaiAlasan
Database latensi ketat10Halamannya harus bertahan di RAM
VPS web dan aplikasi umum60Bawaan sudah sesuai
Mesin dengan zram100–180Biaya swap jauh lebih murah

Lihat nilai yang sedang berlaku, lalu ubah sementara untuk diuji:

Bash
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10

Agar bertahan setelah reboot, simpan ke berkas konfigurasi tersendiri:

Bash
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf

Baris terakhir tabel di atas menyebut zram, perangkat blok terkompresi yang berada di dalam RAM dan dipakai sebagai swap. Halaman yang dipindahkan ke sana tidak menyentuh storage sama sekali, hanya dipadatkan di tempat. Biaya I/O-nya jauh lebih murah, sehingga swappiness di atas 100 menjadi masuk akal.

Fedora memakai zram sebagai bawaan sejak versi 33, berukuran 50 persen RAM dengan batas 4 GiB, dan pemasangnya berhenti membuat swap di disk. Distro Linux turunannya mengikuti pola yang sama, begitu pula Android. Kalau free -h menampilkan swap yang tidak pernah Anda buat, zram biasanya penjelasannya.

Jangan tertukar dengan zswap. zswap bukan perangkat swap tersendiri, melainkan lapisan kompresi di depan swap disk yang tetap ada.

Swap di Windows, macOS, dan Android

Windows memakai istilah page file, berupa berkas pagefile.sys di drive sistem. Menurut dokumentasi Microsoft, page file yang diatur sistem akan tumbuh hingga tiga kali kapasitas RAM atau 4 GB, mana yang lebih besar. Batas atasnya seperdelapan ukuran volume. Pertumbuhan itu dipicu saat kebutuhan memori yang dijanjikan sistem mencapai 90 persen dari batasnya. Sebagian peran Windows Server, termasuk domain controller dan certificate server, memang mensyaratkan page file untuk bekerja dengan benar.

macOS menampilkan angka swap di Activity Monitor, tetapi metrik yang lebih layak diperhatikan adalah memory pressure. Indikator itu menggabungkan memori bebas, laju swap, dan memori yang terkunci. Selama warnanya hijau, angka swap yang tidak nol bukan pertanda masalah. macOS juga memadatkan halaman menganggur di RAM sebelum menulisnya ke disk, mirip zram.

Android sudah menjalankan zram di hampir semua perangkat masa kini. Fitur bermerek seperti RAM Plus atau Virtual RAM pada dasarnya mengatur ukuran zram tersebut. Menyalakan swap sungguhan menuntut akses root, karena perintahnya berjalan di tingkat kernel.

Kelemahan Swap dan Kapan Sebaiknya Dimatikan

Swap bukan pengaturan yang selalu menguntungkan. Ada beberapa hal yang perlu ditimbang sebelum memutuskan ukuran, atau memutuskan untuk tidak memakainya.

  1. Selisih kecepatannya tidak bisa disembunyikan: sebagus apa pun SSD yang dipakai, membaca halaman dari swap tetap jauh lebih lambat daripada dari RAM. Setiap page in adalah jeda yang dirasakan pengguna.
  2. Ruang disk ikut terpakai: di VPS dengan storage 20 GB, swap 4 GB berarti seperlima disk space hilang sebelum satu berkas pun diunggah.
  3. Aktivitas tulis menambah keausan SSD: dalam pemakaian normal proporsinya kecil dibandingkan ketahanan tulis SSD masa kini. Yang merugikan adalah thrashing berkepanjangan, dan itu masalah kekurangan RAM.
  4. Swap tidak menyembuhkan kebocoran memori: aplikasi yang bocor akan terus meminta memori sampai swap ikut habis. Anda hanya mendapat penundaan sebelum kernel mematikan prosesnya, kadang disertai pesan out of memory yang dibahas di artikel kernel panic adalah.
  5. Sebagian sistem justru meminta swap dimatikan: Kubernetes adalah contoh yang paling dikenal, karena kubelet secara historis menolak berjalan saat swap aktif. Dukungan swap di node Linux naik ke status Beta pada Kubernetes 1.28 dan masih Beta sampai rilis 1.32. Dukungan itu harus dinyalakan lewat failSwapOn: false, dan hanya pod berkelas Burstable yang boleh memakainya.

Untuk beban kerja yang sensitif terhadap latensi, seperti database transaksional, menurunkan swappiness lebih bijak daripada mematikan swap sepenuhnya. Menghapus swap justru menghilangkan pilihan kernel saat memori menipis.

Kalau setelah semua penyetelan angka si dan so tetap tinggi, kesimpulannya hanya satu: mesin tersebut kekurangan RAM. Menaikkan spesifikasi VPS Indonesia ke tingkat berikutnya menyelesaikan masalah yang tidak bisa diselesaikan konfigurasi swap seberapa pun telitinya.

Pertanyaan Seputar Swap Memory

Fungsi swap untuk apa? Fungsi utamanya memberi kernel tempat memindahkan halaman memori yang menganggur, sehingga RAM tersedia untuk pekerjaan yang lebih mendesak. Fungsi keduanya menyediakan penyangga saat pemakaian memori melonjak, dan menampung isi RAM ketika komputer dihibernasi.

Apa yang dimaksud dengan swap dalam komputer? Swap adalah perpindahan halaman memori antara RAM dan storage, sekaligus nama ruang penyimpanan tempat halaman itu ditampung. Di luar konteks komputer, kata swap dipakai di bidang lain dengan arti yang sama sekali berbeda, misalnya di perdagangan valuta asing.

Apa bedanya switch dan swap? Keduanya tidak berkaitan. Switch adalah perangkat jaringan yang meneruskan paket data di jaringan lokal, sedangkan swap adalah mekanisme pengelolaan memori di dalam satu komputer. Kemiripannya hanya pada arti harfiahnya dalam bahasa Inggris.

Apakah aplikasi swap tanpa root di Android aman? Aplikasi semacam itu umumnya tidak melakukan swap yang sesungguhnya, karena mengaktifkan swap membutuhkan akses root. Yang biasanya terjadi adalah aplikasi menutup proses latar, lalu menampilkannya sebagai penambahan RAM. Perangkat Anda sudah menjalankan zram bawaan, jadi manfaat tambahannya kecil sementara izin akses yang diminta sering berlebihan.

Apakah VPS dengan RAM 1 GB perlu swap? Perlu, dan justru di kelas inilah swap paling berguna. Berikan 2 GB, lalu pantau si dan so selama seminggu. Kalau keduanya bertahan di nol, konfigurasi Anda tepat.

Kesimpulan

Swap memory adalah ruang di storage yang menampung halaman memori menganggur agar RAM bisa dipakai untuk pekerjaan yang lebih penting. Ia bukan RAM cadangan dan tidak menambah kapasitas kerja mesin Anda; yang diberikannya adalah keleluasaan kernel dalam memilih halaman mana yang dibebaskan.

Itulah jawaban singkat untuk pertanyaan apa itu swap. Tiga angka juga layak Anda ingat. Ukuran swap yang dianjurkan jauh lebih kecil daripada mitos 2x RAM; pemasang Ubuntu membatasinya di 8 GiB berapa pun besar RAM-nya. Swappiness bergerak dari 0 sampai 200, dan nilainya adalah bobot biaya, bukan persentase sisa RAM. Yang perlu dipantau adalah laju si dan so, bukan persentase swap terpakai — swap penuh dengan laju nol adalah kondisi yang sehat.

Semoga artikel ini membantu.