Baca available, bukan free
Linux menggunakan memori yang tidak terpakai sebagai cache disk, sehingga memori free yang rendah pada server sehat adalah hal normal. Kolom available adalah perkiraan kernel tentang memori yang dapat digunakan pekerjaan baru tanpa melakukan swap. Angka itulah yang perlu dipantau. Perhitungan used yang tepat bergantung pada versi alat, jadi jangan membandingkannya antar sistem yang berbeda.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoBagian cache yang dapat dan tidak dapat dibebaskan
Cache halaman biasanya dapat dibebaskan saat aplikasi membutuhkan memori. Memori bersama dan tmpfs (Shmem) juga muncul dalam cache, tetapi tidak dapat dibuang begitu saja karena menyimpan data yang tidak memiliki salinan di disk. Karena itu, cache besar dengan memori available yang rendah sering menunjukkan tmpfs atau segmen memori bersama yang besar.
df -h -t tmpfs
sudo slabtop -o | head -15swap yang terpakai tidak otomatis berarti masalah
Server dapat menyimpan halaman yang jarang digunakan dalam swap selama berminggu-minggu tanpa masalah. Yang merugikan adalah perpindahan terus-menerus. Pantau kolom si dan so dalam vmstat: nilai yang terus berada di atas nol berarti sistem aktif melakukan swap, yang merupakan tanda kekurangan memori yang nyata.
swapon --show
vmstat 1 5Temukan pemakai memori
Urutkan proses berdasarkan memori residen. RSS menghitung halaman yang dipakai bersama oleh beberapa proses pada setiap proses tersebut, sehingga nilai beberapa proses tidak dapat dijumlahkan begitu saja. Alat dengan PSS, seperti smem, memberikan jumlah yang lebih representatif jika terpasang.
ps -eo pid,user,rss,comm --sort=-rss | head -15Kenali kekurangan memori yang nyata
Tandanya adalah memori available yang rendah, aktivitas swap terus-menerus, dan proses yang dihentikan oleh mekanisme out-of-memory killer. Periksa log kernel. Jangan menjalankan drop_caches agar angkanya terlihat lebih baik: tindakan ini hanya membuat server membaca ulang dari disk dan tidak menyelesaikan masalah.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Memori di CH-J Server Manager
System Monitor membaca nilai ini melalui SSH. Di Linux, used dihitung sebagai MemTotal − MemFree − Buffers − Cached − SReclaimable, sedangkan available menggunakan perkiraan kernel. Memori bersama termasuk dalam Cached dan tidak dapat dibebaskan, serta kategori pada bilah tidak tumpang tindih. Karena rumusnya berbeda dari beberapa versi free, angkanya mungkin tidak sama persis. Alat ini juga menampilkan swap beserta riwayat penggunaannya. ZFS ARC tidak diperlakukan secara terpisah, sehingga pada host ZFS dihitung sebagai memori terpakai.