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:
availablekurang dari 10% daritotal;Swap usedbertambah dan tidak dibebaskan;- pada
vmstat 2,si/sobernilai 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
VIRTdi htop. Ukuran virtual untuk JVM, PostgreSQL, dan Node sangat besar dan tidak mencerminkan pemakaian. LihatRES.
Anda perlu memeriksa memori sebelum gangguan, bukan sesudahnya. Siapkan peringatan ambang batas — ada resep sederhana di artikel Peringatan downtime situs.