Skip to content
VDS · Pemantauan dan performa

Memori dan swap: kapan saatnya naik tier

Cara membedakan penggunaan memori normal dari kekurangan, mengapa swap diperlukan pada tier kecil, dan berdasarkan tanda apa memutuskan untuk pindah ke paket yang lebih tinggi.

Diperbarui 23 Agustus 2026

“120 MB gratis dari 2 GB” menakutkan pendatang baru dan tidak berarti apa-apa di Linux: sistem sengaja memakai memori kosong untuk cache berkas, karena memori yang menganggur tidak berguna. Kolom lain memberi gambaran yang sebenarnya.

Membaca free dengan benar

free -h
#               total  used   free  shared  buff/cache  available
# Mem:          1.9Gi  742Mi  102Mi    18Mi       1.1Gi      1.0Gi
# Swap:         1.0Gi  126Mi  898Mi

Perhatikan available — berapa banyak memori yang bisa didapat aplikasi dengan mengusir cache. Selama nilai ini jauh di atas nol, mesin baik-baik saja. free dalam pengertian ini tidak berguna.

Tanda-tanda bahaya:

  • available kurang dari 10% dari total;
  • Swap used bertambah dan tidak dibebaskan;
  • pada vmstat 2, si/so bernilai bukan nol dan konstan — sistem terus-menerus melakukan paging ke disk.

Apa tepatnya yang memakan memori:

ps aux --sort=-%mem | head -10
smem -tk -s uss 2>/dev/null | tail -10

Swap: perlu atau tidak

Swap kecil berguna di tier mana pun: ia memberi sistem ruang untuk memindahkan halaman yang sudah lama tidak dipakai dan melindungi dari proses yang mati seketika saat lonjakan singkat. Swap bukan pengganti memori — disk ratusan kali lebih lambat.

Buat berkas swap 2 GB:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

Kendalikan kecenderungan sistem untuk melakukan swap:

sysctl -w vm.swappiness=10
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf

Ingatlah bahwa berkas swap memakan ruang pada disk tier tersebut (40 GB pada VDS-1), dan penulisan ke sana menghabiskan bandwidth kecepatan disk, lihat Beban disk.

Bocor atau memori kurang

Grafik memori di panel /hosting/vds/m/<id> pada skala mingguan membantu membedakan keduanya:

  • Gigi gergaji — naik sampai plafon, turun saat layanan dimulai ulang, naik lagi. Ini kebocoran pada aplikasi; tier yang lebih tinggi hanya menunda masalahnya.
  • Dataran rata di plafon sejak awal — working set memang tidak cukup ruang.
  • Penurunan tajam — OOM killer membunuh proses; lihat artikel Kehabisan memori.

Sebelum mengganti paket, bereskan dulu yang jelas: batasi SystemMaxUse untuk journal, tetapkan batas yang wajar untuk basis data (MySQL meminta cukup banyak secara bawaan), hapus layanan yang tidak dipakai (systemctl list-units --type=service --state=running), dan kurangi jumlah worker untuk PHP-FPM dan Gunicorn.

Kapan harus upgrade

Jika setelah pembersihan available tetap mendekati nol selama berminggu-minggu, swap terus dipakai, dan Anda membutuhkan aplikasi secara keseluruhan, ambil tier yang lebih tinggi. Memori bertambah mengikuti seri 2, 4, 8, 16, 24, 32 GB. Upgrade hanya ke atas, dengan pembayaran tambahan untuk sisa hari; downgrade tidak tersedia: disk tidak menyusut. Untuk detailnya, lihat artikel Upgrade paket.

Kesalahan umum

  • Mematikan swap sepenuhnya. Saat lonjakan, sistem akan membunuh proses alih-alih bertahan selama satu menit.
  • Membuat swap seukuran disk. Mesin tidak akan mati, tetapi akan merangkak selama berjam-jam, yang lebih buruk daripada crash cepat.
  • Melihat VIRT di htop. Ukuran virtual untuk JVM, PostgreSQL, dan Node sangat besar dan tidak mencerminkan pemakaian. Lihat RES.

Anda perlu memeriksa memori sebelum gangguan, bukan sesudahnya. Siapkan peringatan ambang batas — ada resep sederhana di artikel Peringatan downtime situs.