RAM Server Selalu Penuh, Bahaya atau Normal?
RAM Linux yang terlihat penuh belum tentu masalah. Pelajari cara membaca free -h, bedanya cache dan memori terpakai, serta tanda RAM benar-benar kurang.
Jawaban singkat
RAM server Linux yang terlihat hampir penuh biasanya normal, karena kernel memakai memori kosong sebagai cache file yang bisa dilepas kapan saja. Yang perlu dipantau adalah kolom available, aktivitas swap, dan catatan OOM killer, bukan angka used semata.
Daftar isi
RAM server yang "selalu penuh" adalah keluhan yang sangat umum, dan di Linux jawabannya hampir selalu: itu normal. Kernel Linux sengaja memakai memori yang sedang tidak dipakai aplikasi untuk menyimpan salinan file yang sering dibaca (page cache). Memori ini bisa dilepas seketika saat aplikasi membutuhkannya, jadi sebenarnya tidak "habis".
Yang dipertaruhkan adalah keputusanmu. Kalau angka "used" di grafik panel dianggap tanda bahaya, kamu bisa membayar upgrade RAM yang tidak perlu, atau lebih buruk, menjalankan skrip pembersih cache yang justru membuat server lebih lambat. Sebaliknya, kalau semua grafik penuh dianggap normal, kamu bisa melewatkan tanda kekurangan memori yang sebenarnya sampai proses penting mati mendadak.
Bagaimana membaca pemakaian RAM dengan benar?
Perintah paling sederhana adalah free -h. Hasilnya kurang lebih seperti ini:
total used free shared buff/cache available
Mem: 3.8Gi 1.2Gi 180Mi 60Mi 2.5Gi 2.4Gi
Swap: 2.0Gi 0B 2.0Gi
Sekilas, free hanya 180 MiB dan terlihat mengkhawatirkan. Padahal sebagian besar memori ada di buff/cache, dan kolom available menunjukkan masih ada sekitar 2,4 GiB yang bisa dipakai aplikasi baru tanpa perlu swap.
Arti setiap kolom
| Kolom | Artinya | Perlu dikhawatirkan? |
|---|---|---|
| total | Seluruh RAM yang terlihat oleh sistem | Tidak |
| used | Memori yang dipakai proses dan kernel, di luar cache | Hanya bila mendekati total dan available rendah |
| free | Memori yang benar-benar kosong, tidak dipakai sama sekali | Tidak, wajar bila kecil |
| shared | Memori bersama, termasuk tmpfs | Jarang |
| buff/cache | Cache file dan buffer yang bisa dilepas | Tidak, ini justru mempercepat server |
| available | Perkiraan memori yang bisa dipakai aplikasi baru tanpa swap | Ya, ini angka utama |
Kolom available dihitung kernel dari nilai MemAvailable di /proc/meminfo. Angka ini memperhitungkan bahwa sebagian cache bisa dilepas dan sebagian lagi tidak, sehingga jauh lebih jujur daripada free.
Kenapa grafik panel sering terlihat penuh
Banyak panel atau alat monitoring menampilkan RAM "terpakai" dengan cara menjumlahkan semua yang tidak kosong, termasuk cache. Akibatnya grafik terlihat stabil di 90 persen lebih, padahal server santai. Sebelum panik, cek definisi metrik di alat yang kamu pakai, atau bandingkan dengan free -h langsung di server. Cara membaca grafik semacam ini dibahas lebih jauh di artikel metrik server yang wajib dipantau.
Ada juga aplikasi yang memang memesan memori besar sejak awal. MySQL dan MariaDB menyiapkan InnoDB buffer pool sesuai pengaturan, aplikasi Java memesan heap, dan Redis menyimpan seluruh datanya di RAM. Pemakaian tinggi dari aplikasi seperti ini wajar selama memang sudah direncanakan dan masih menyisakan ruang untuk sistem.
Tanda RAM benar-benar kurang
Angka penuh bukan masalah. Masalahnya adalah ketika aplikasi mulai berebut memori. Tanda-tandanya:
availableterus rendah, misalnya di bawah 10 persen dari total, terutama saat jam sibuk.- Swap aktif terus-menerus. Jalankan
vmstat 1 10dan lihat kolomsi(swap in) danso(swap out). Angka yang selalu di atas nol berarti data terus dipindah antara RAM dan disk, dan server terasa lambat. - Proses mati sendiri. Cari jejak OOM killer dengan
journalctl -k | grep -i "out of memory"ataudmesg | grep -i oom. Penjelasan lengkapnya ada di artikel proses mati mendadak karena OOM killer. - Tekanan memori tinggi. Kernel modern menyediakan
/proc/pressure/memory(Pressure Stall Information). Nilaisomedanfullyang terus naik berarti proses sering tertahan karena menunggu memori. - Disk sibuk padahal tidak ada aktivitas tulis besar. Saat RAM sempit, kernel harus terus membuang cache lalu membaca ulang file dari disk.
Untuk melihat siapa pemakai terbesar, jalankan ps aux --sort=-rss | head -n 10, atau buka htop lalu urutkan berdasarkan kolom memori. Panduan memakai alat itu ada di artikel melihat proses berjalan dengan top dan htop.
Kapan cukup dibiarkan, kapan perlu bertindak?
Biarkan saja bila available masih longgar, swap hampir tidak bergerak, tidak ada catatan OOM, dan aplikasi terasa responsif. Grafik yang penuh karena cache justru tanda kernel memanfaatkan RAM dengan baik. Tidak ada keuntungan memiliki RAM kosong yang menganggur.
Bertindaklah bila tanda-tanda di atas muncul berulang. Langkah pertama bukan selalu menambah RAM. Periksa dulu apakah ada pengaturan yang terlalu boros, misalnya jumlah worker PHP-FPM yang melebihi kemampuan server, buffer pool database yang diatur lebih besar dari RAM yang tersedia, atau kebocoran memori di aplikasi yang membuat pemakaian naik terus setiap hari sampai di-restart.
Swap bisa menjadi bantalan untuk lonjakan sesaat, terutama di VPS kecil. Pertimbangannya dibahas di artikel perlukah swap di VPS kecil. Namun swap bukan pengganti RAM. Kalau server terus bergantung pada swap, performanya akan turun.
Bila setelah penyesuaian available tetap tipis di jam normal, menambah RAM adalah langkah yang masuk akal. Pada VPS, ini biasanya cukup dengan upgrade paket tanpa memindahkan data.
Pertanyaan yang sering diajukan
Berapa persen pemakaian RAM yang masih aman?
Lebih tepat melihat kolom available daripada persen used. Selama available masih cukup untuk lonjakan di jam sibuk dan swap tidak aktif terus-menerus, pemakaian tinggi bukan masalah.
Kenapa RAM penuh lagi tidak lama setelah server di-restart?
Karena kernel kembali mengisi cache dengan file yang dibaca aplikasi. Ini perilaku normal. Yang perlu dicurigai adalah bila kolom used (bukan cache) terus naik dari hari ke hari tanpa turun.
Apakah RAM penuh membuat website lambat?
Cache yang penuh tidak membuat lambat, justru membantu. Website melambat bila available habis dan server mulai memakai swap atau terpaksa membuang cache yang masih dibutuhkan.
Apakah perlu memasang aplikasi pembersih RAM di server Linux?
Tidak perlu. Kernel Linux sudah mengatur cache secara otomatis. Fokuslah pada pemantauan available, swap, dan log OOM.


