Baca available, bukannya free
Linux menggunakan memori yang belum digunakan sebagai cache cakera, jadi memori free yang rendah pada pelayan sihat ialah perkara biasa. Lajur available ialah anggaran kernel tentang jumlah memori yang boleh digunakan tugas baharu tanpa pemindahan ke swap. Itulah angka yang perlu dipantau. Pengiraan tepat used bergantung pada versi alat, jadi jangan bandingkannya antara sistem yang berbeza.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoBahagian cache yang boleh dan tidak boleh dilepaskan
Cache halaman biasanya boleh dilepaskan apabila aplikasi memerlukan memori. Memori kongsi dan tmpfs (Shmem) turut muncul dalam cache, tetapi tidak boleh dibuang begitu sahaja kerana mengandungi data yang tiada salinan pada cakera. Oleh itu, cache besar dengan memori available yang rendah sering menandakan tmpfs atau segmen memori kongsi yang besar.
df -h -t tmpfs
sudo slabtop -o | head -15swap yang digunakan tidak semestinya bermasalah
Pelayan boleh menyimpan halaman yang jarang digunakan dalam swap selama berminggu-minggu tanpa kesan buruk. Yang menjejaskan prestasi ialah pemindahan berterusan. Pantau lajur si dan so dalam vmstat: nilai yang kekal melebihi sifar bermakna sistem sedang aktif memindahkan halaman masuk dan keluar swap, tanda kekurangan memori sebenar.
swapon --show
vmstat 1 5Cari apa yang menggunakan memori
Isih proses mengikut memori residen. RSS mengira halaman yang dikongsi antara proses dalam setiap proses tersebut, jadi nilai beberapa proses tidak boleh dijumlahkan begitu sahaja. Alat dengan PSS, seperti smem, memberikan jumlah yang lebih mewakili penggunaan sebenar jika dipasang.
ps -eo pid,user,rss,comm --sort=-rss | head -15Kenali kekurangan memori sebenar
Tandanya ialah memori available yang rendah, pemindahan swap berterusan dan proses yang ditamatkan oleh mekanisme out-of-memory killer. Semak log kernel. Jangan jalankan drop_caches untuk menjadikan angka kelihatan lebih baik: ia hanya menyebabkan pelayan membaca semula dari cakera dan tidak menyelesaikan apa-apa.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Memori dalam CH-J Server Manager
System Monitor membaca nilai ini melalui SSH. Pada Linux, used ditakrifkan sebagai MemTotal − MemFree − Buffers − Cached − SReclaimable, manakala available ialah anggaran kernel. Memori kongsi ialah sebahagian daripada Cached dan tidak boleh dilepaskan, dan kategori dalam bar tidak bertindih. Oleh sebab formulanya berbeza daripada sesetengah versi free, angkanya mungkin tidak sepadan tepat. Ia turut menunjukkan swap bersama sejarah penggunaannya. ZFS ARC tidak dikendalikan secara berasingan, jadi pada hos ZFS ia dikira sebagai memori yang digunakan.