Perintah dan Alat untuk Memeriksa Konsumsi RAM di Linux
Memantau penggunaan RAM di Linux berarti melakukan kueri pada subsistem memori kernel untuk mengambil metrik alokasi memori fisik, utilisasi swap, dan ukuran resident set per proses. Metode paling langsung menggunakan utilitas bawaan — free, top, htop, ps, vmstat, dan smem — masing-masing mengekspos lapisan hierarki memori yang berbeda, mulai dari total keseluruhan sistem hingga ukuran set proporsional per proses (PSS).
Tekanan memori yang berlebihan memicu Linux Out-of-Memory (OOM) killer, yang secara paksa menghentikan proses untuk memulihkan RAM. Memahami perintah mana yang mengungkapkan metrik apa — dan apa arti sebenarnya dari metrik tersebut — adalah perbedaan antara penanganan reaktif dan manajemen kapasitas yang proaktif. Panduan ini mencakup setiap alat utama, sumber data kernel yang dibacanya, dan kasus-kasus tepi yang bahkan sering mengecoh administrator berpengalaman.
Mengapa Pemantauan RAM Penting di Server Linux
Manajemen memori Linux sengaja dirancang agresif. Kernel menggunakan semua RAM yang tersedia sebagai page cache untuk mempercepat I/O disk, yang berarti sistem yang melaporkan memori bebas hampir nol belum tentu berada di bawah tekanan — mungkin hanya melakukan caching secara efisien. Salah membaca perilaku ini adalah salah satu kesalahan paling umum saat menginterpretasikan angka memori mentah.
Alasan utama untuk memantau RAM secara berkelanjutan:
- Pencegahan OOM killer: Identifikasi proses yang boros memori sebelum kernel menghentikan layanan kritis.
- Deteksi penggunaan swap: Aktivitas swap yang berat (swapping) menandakan kehabisan RAM dan menyebabkan latensi I/O yang parah.
- Diagnosis kebocoran memori: Proses dengan RSS yang terus bertumbuh dari waktu ke waktu menandakan kebocoran di tingkat aplikasi.
- Perencanaan kapasitas: Data tren menginformasikan keputusan tentang penskalaan vertikal atau redistribusi beban kerja.
- Penyetelan performa: Menyesuaikan
vm.swappiness, huge pages, dan topologi NUMA memerlukan data memori dasar.
Pada lingkungan VPS Hosting di mana sumber daya dibagi atau dibatasi oleh batas hypervisor, pemantauan RAM yang akurat sangat penting — mencapai batas memori secara diam-diam menurunkan performa sebelum ada peringatan yang muncul.
Memahami Terminologi Memori Linux
Sebelum menjalankan perintah apa pun, Anda perlu memahami apa yang sebenarnya diwakili oleh kolom-kolom output.
| Istilah | Definisi |
|---|---|
| Total | RAM fisik yang terpasang (atau dialokasikan ke VM) |
| Used | Memori yang aktif dikonsumsi oleh proses dan struktur kernel |
| Free | RAM yang sama sekali tidak digunakan — sering kali terlihat rendah secara menyesatkan |
| Shared | Memori yang digunakan oleh tmpfs dan dibagi antar proses |
| Buff/Cache | Buffer kernel dan page cache — dapat diklaim kembali sesuai permintaan |
| Available | Perkiraan realistis RAM yang tersedia untuk alokasi baru tanpa swapping |
| Swap Used | Data yang dipindahkan dari RAM ke partisi swap atau file swap |
| VSZ (Virtual Size) | Total ruang alamat virtual yang dicadangkan oleh sebuah proses |
| RSS (Resident Set Size) | RAM fisik yang saat ini ditempati oleh sebuah proses |
| PSS (Proportional Set Size) | RSS yang disesuaikan untuk memori bersama — metrik per proses yang paling akurat |
| USS (Unique Set Size) | Memori yang dimiliki secara eksklusif oleh sebuah proses; dibebaskan sepenuhnya saat keluar |
Wawasan penting: Selalu gunakan kolom Available dari free -h, bukan kolom Free, saat menilai apakah sistem memiliki cukup RAM untuk beban kerja baru. Kolom Free mengabaikan cache yang dapat diklaim kembali, sehingga menimbulkan alarm palsu.
File /proc/meminfo: Sumber Otoritatif
Setiap alat yang dijelaskan dalam artikel ini membaca dari /proc/meminfo, sebuah file virtual yang dikelola oleh kernel secara real time. Memeriksanya secara langsung memberi Anda data paling terperinci yang tersedia:
cat /proc/meminfoBidang-bidang utama yang perlu diperhatikan:
MemTotal— total RAM yang dapat digunakanMemFree— RAM yang sepenuhnya tidak aktifMemAvailable— perkiraan RAM yang tersedia untuk proses baruBuffers— cache blok disk mentahCached— page cache untuk fileSwapTotal/SwapFree— kapasitas dan ketersediaan swapDirty— memori yang menunggu untuk ditulis ke disk (nilai tinggi menandakan tekanan I/O)HugePages_Total/HugePages_Free— status alokasi huge pageSlab— cache struktur data kernel (dapat tumbuh besar pada server NFS atau database yang sibuk)
Memahami /proc/meminfo memungkinkan Anda menginterpretasikan output setiap alat lainnya dengan konteks penuh.
Memeriksa RAM dengan Perintah free
free adalah cara tercepat untuk mendapatkan snapshot memori seluruh sistem. Perintah ini membaca langsung dari /proc/meminfo dan memformat output ke dalam tabel yang mudah dibaca manusia.
Penggunaan Dasar
freeOutput dalam kilobyte secara default. Gunakan flag untuk format yang lebih mudah dibaca:
free -h # Human-readable (MB/GB)
free -m # Output in megabytes
free -g # Output in gigabytes
free -s 5 # Refresh every 5 seconds (continuous monitoring)
free -h --si # Use SI units (1000-based) instead of binary (1024-based)Penjelasan Contoh Output
total used free shared buff/cache available
Mem: 15Gi 4.2Gi 1.1Gi 312Mi 9.8Gi 10.9Gi
Swap: 2.0Gi 128Mi 1.9GiDalam contoh ini, sistem tampaknya hanya memiliki 1,1 GB bebas, tetapi 10,9 GB sebenarnya tersedia untuk proses baru karena kernel akan mengklaim kembali buff/cache sesuai permintaan. Inilah hal terpenting yang perlu dipahami tentang output free.
Kasus Tepi: Penggunaan Swap sebagai Sinyal Peringatan
Bahkan sejumlah kecil penggunaan swap (Swap: used > 0) pada server produksi perlu diselidiki. Ini berarti kernel telah memutuskan bahwa beberapa halaman memori lebih baik disimpan di disk daripada di RAM — tanda bahwa working set melebihi memori fisik.
Memeriksa RAM dengan Perintah top
top menyediakan tampilan real-time yang terus diperbarui tentang penggunaan sumber daya sistem, menggabungkan statistik CPU dan memori dengan daftar proses yang diurutkan.
topBidang Memori Utama di top
Di bagian atas antarmuka top, dua baris menampilkan statistik memori:
MiB Mem : 16384.0 total, 1126.4 free, 4301.2 used, 10956.4 buff/cache
MiB Swap: 2048.0 total, 1920.0 free, 128.0 used. 11200.0 avail MemDalam tabel proses, kolom memori yang paling relevan adalah:
- VIRT — ukuran memori virtual (setara VSZ)
- RES — memori fisik resident (RSS)
- SHR — porsi memori bersama dari RES
- %MEM — persentase total RAM fisik yang digunakan
Perintah Interaktif top yang Berguna
| Tombol | Aksi |
|---|---|
M | Urutkan proses berdasarkan penggunaan memori (%MEM) |
P | Urutkan berdasarkan penggunaan CPU |
k | Hentikan proses berdasarkan PID |
1 | Alihkan statistik per core CPU |
f | Tambah/hapus bidang tampilan |
W | Simpan konfigurasi saat ini |
Menjalankan top Secara Non-Interaktif
Untuk skrip dan pengambilan log, jalankan top dalam mode batch:
top -b -n 1 | head -30Ini menghasilkan satu snapshot — berguna untuk skrip pemantauan berbasis cron.
Memeriksa RAM dengan htop
htop adalah penampil proses berbasis ncurses yang ditingkatkan, yang menyajikan data dasar yang sama seperti top dengan antarmuka yang jauh lebih mudah digunakan. Alat ini tidak diinstal secara default di sebagian besar distribusi.
Instalasi
# Debian / Ubuntu
apt-get install htop
# RHEL / CentOS / AlmaLinux / Rocky Linux
yum install htop
# or on newer versions:
dnf install htop
# Alpine Linux
apk add htopApa yang htop Tambahkan Dibanding top
- Bar memori berkode warna yang membedakan memori yang digunakan, buffer, dan cache secara sekilas
- Tampilan pohon proses horizontal dan vertikal (
F5) - Dukungan mouse untuk mengklik dan menggulir
- Multi-pilih untuk manajemen proses massal
- Pencarian bawaan (
F3) dan filter (F4) tanpa perlu menghafal pintasan tombol - Tampilan langsung memori yang tersedia secara menonjol di header
Legenda Warna Bar Memori htop
| Warna | Arti |
|---|---|
| Hijau | Memori yang digunakan (proses) |
| Biru | Buffer cache |
| Kuning/Oranye | Page cache |
| Merah | Swap yang digunakan |
Tips pro: Di htop, tekan F2 (Setup) > Display Options > aktifkan “Show CPU frequency” dan “Detailed CPU time” untuk gambaran yang lebih lengkap bersama data memori.
Memeriksa RAM dengan Perintah ps
ps (process status) melakukan kueri pada tabel proses kernel dan dapat diurutkan serta difilter untuk mengidentifikasi konsumen memori teratas pada suatu waktu.
Urutkan Proses Berdasarkan Konsumsi Memori
ps aux --sort=-%memPenjelasan Kolom Output
| Kolom | Deskripsi |
|---|---|
USER | Pemilik proses |
PID | ID Proses |
%CPU | Utilisasi CPU sejak proses dimulai |
%MEM | Persentase RAM fisik yang digunakan (RSS / MemTotal) |
VSZ | Ukuran memori virtual dalam KB |
RSS | Ukuran resident set dalam KB |
TTY | Terminal pengendali |
STAT | Status proses (S=tidur, R=berjalan, Z=zombie, D=tunggu tak terputus) |
START | Waktu mulai proses |
TIME | Waktu CPU kumulatif yang dikonsumsi |
COMMAND | Nama perintah dan argumen |
One-Liner Praktis
Tampilkan 10 proses yang paling banyak mengonsumsi memori dengan output yang mudah dibaca:
ps aux --sort=-%mem | head -11Tampilkan penggunaan memori untuk nama proses tertentu (misalnya, Apache):
ps aux | grep apache2 | awk '{sum += $6} END {print sum/1024 " MB"}'Ini menjumlahkan nilai RSS dari semua proses worker apache2 — penting untuk memahami jejak sebenarnya dari server web multi-proses.
Catatan penting: ps menampilkan RSS, yang menghitung ganda shared library. Jika 20 worker Apache masing-masing memetakan shared library 50 MB yang sama, ps melaporkan 1.000 MB penggunaan shared library di antara mereka, sementara biaya fisik sebenarnya hanya 50 MB. Gunakan smem untuk akuntansi yang akurat.
Memeriksa RAM dengan smem
smem adalah alat akuntansi memori per proses yang paling akurat yang tersedia di Linux karena melaporkan PSS (Proportional Set Size) — memori bersama dibagi secara proporsional di antara semua proses yang memetakannya, menghilangkan masalah penghitungan ganda yang melekat pada alat berbasis RSS.
Instalasi
# Ubuntu / Debian
apt-get install smem
# CentOS / RHEL 7
yum install smem
# RHEL 8+ / AlmaLinux / Rocky Linux
dnf install smem
# Alternatively, install via pip
pip install smemPenggunaan Dasar
smemOpsi smem yang Berguna
smem -r # Sort by RSS (descending)
smem -s pss -r # Sort by PSS (most accurate, descending)
smem -u # Aggregate by user
smem -m # Show system-wide memory map
smem -p # Show percentages instead of raw KB
smem -k # Show values in KB
smem -t # Show totals row
smem --pie name # Generate a pie chart (requires matplotlib)
smem -P apache2 # Filter by process name patternPSS vs RSS: Mengapa Ini Penting
Pertimbangkan server yang menjalankan 10 proses worker Node.js, masing-masing berbagi library runtime V8 sebesar 100 MB:
- RSS per proses: 200 MB (100 MB bersama + 100 MB privat)
- Total RSS yang dilaporkan: 2.000 MB
- PSS per proses: 110 MB (bagian 10 MB dari 100 MB + 100 MB privat)
- Total PSS yang dilaporkan: 1.100 MB
- RAM fisik yang sebenarnya digunakan: 1.100 MB
RSS melebih-lebihkan penggunaan hampir 2x dalam skenario ini. Saat membuat keputusan penskalaan pada Dedicated Server, menggunakan PSS dari smem memberi Anda kebenaran yang sesungguhnya.
Memeriksa RAM dengan vmstat
vmstat (virtual memory statistics) memberikan tampilan yang lebih luas tentang aktivitas memori, swap, I/O, dan CPU, menjadikannya ideal untuk mendiagnosis tekanan memori seluruh sistem daripada masalah proses individual.
vmstat 2 10 # Report every 2 seconds, 10 timesKolom Memori Utama
| Kolom | Deskripsi |
|---|---|
swpd | Memori virtual yang digunakan (swap) |
free | Memori yang tidak aktif |
buff | Memori yang digunakan sebagai buffer |
cache | Memori yang digunakan sebagai cache |
si | Memori yang di-swap masuk dari disk (KB/s) |
so | Memori yang di-swap keluar ke disk (KB/s) |
Sinyal kritis: Nilai si (swap-in) dan so (swap-out) yang bukan nol dalam aliran vmstat yang berjalan menandakan swapping aktif — tanda pasti kehabisan memori. Bahkan lonjakan sesekali dalam so dapat menyebabkan lonjakan latensi aplikasi ratusan milidetik.
Memeriksa RAM dengan sar (System Activity Reporter)
sar dari paket sysstat merekam data memori historis, memungkinkan analisis retrospektif — sesuatu yang tidak dapat disediakan oleh alat real-time.
Instalasi
apt-get install sysstat # Debian/Ubuntu
yum install sysstat # CentOS/RHELPenggunaan
sar -r 1 5 # Memory stats every 1 second, 5 times
sar -r -f /var/log/sysstat/sa$(date +%d) # Today's historical data
sar -S 1 5 # Swap statisticssar sangat berharga untuk menjawab pertanyaan seperti “Apakah ada lonjakan memori pada pukul 3 pagi yang menyebabkan crash aplikasi?” — pertanyaan yang tidak dapat dijawab oleh alat real-time mana pun setelah kejadian.
Memeriksa RAM dengan /proc/<PID>/status dan /proc/<PID>/smaps
Untuk analisis mendalam per proses, kernel mengekspos peta memori terperinci langsung di /proc.
Pemeriksaan Memori Cepat Per Proses
cat /proc/$(pgrep nginx | head -1)/status | grep -E "VmRSS|VmPeak|VmSize|VmSwap"Contoh output:
VmPeak: 512340 kB
VmSize: 498120 kB
VmRSS: 102400 kB
VmSwap: 0 kBVmPeak— ukuran memori virtual puncak yang pernah dicapai oleh proses iniVmRSS— ukuran resident set saat iniVmSwap— seberapa banyak proses ini telah di-swap keluar
Peta Memori Terperinci dengan smaps
cat /proc/$(pgrep mysql | head -1)/smaps | grep -E "^(Size|Rss|Pss|Shared|Private)"Ini mengungkapkan setiap pemetaan memori (heap, stack, shared library, pemetaan anonim) dengan nilai RSS dan PSS individual — tampilan memori paling terperinci yang tersedia tanpa profiler.
Perbandingan Alat: Memilih Perintah yang Tepat
| Alat | Cakupan | Jenis Metrik | Real-Time | Historis | Akurasi Memori Bersama | Kasus Penggunaan Terbaik |
|---|---|---|---|---|---|---|
free | Seluruh sistem | Total/Tersedia | Ya | Tidak | N/A | Pemeriksaan kesehatan cepat |
top | Per proses + sistem | RSS, %MEM | Ya | Tidak | Rendah (RSS) | Pemantauan interaktif |
htop | Per proses + sistem | RSS, %MEM | Ya | Tidak | Rendah (RSS) | Pemantauan interaktif (direkomendasikan) |
ps | Per proses | RSS, VSZ | Snapshot | Tidak | Rendah (RSS) | Skrip, pengurutan |
smem | Per proses | PSS, USS, RSS | Snapshot | Tidak | Tinggi (PSS) | Akuntansi memori yang akurat |
vmstat | Seluruh sistem | Swap I/O, bebas | Ya | Tidak | N/A | Mendiagnosis tekanan swap |
sar | Seluruh sistem | Semua metrik | Tidak | Ya | N/A | Analisis pasca-insiden |
/proc/meminfo | Seluruh sistem | Data kernel mentah | Ya | Tidak | N/A | Skrip, otomasi |
/proc/PID/smaps | Per proses | Peta lengkap | Ya | Tidak | Tinggi | Profiling proses mendalam |
Alur Kerja Pemantauan Praktis
Alur Kerja 1: Triase Cepat (Di Bawah 60 Detik)
free -h # Step 1: Is Available memory critically low?
vmstat 1 5 # Step 2: Is active swapping occurring?
ps aux --sort=-%mem | head -15 # Step 3: Which processes are the top consumers?Alur Kerja 2: Mengidentifikasi Kebocoran Memori
# Watch a specific process's RSS grow over time
watch -n 5 'ps -o pid,rss,vsz,comm -p $(pgrep your_app)'
# Or use smem with repeated snapshots
while true; do smem -P your_app -t; sleep 30; doneAlur Kerja 3: Analisis Historis Pasca-Insiden
sar -r -f /var/log/sysstat/sa$(date +%d --date='yesterday')Alur Kerja 4: Skrip Peringatan Otomatis
#!/bin/bash
THRESHOLD=90
USED_PCT=$(free | awk '/^Mem:/ {printf "%.0f", $3/$2 * 100}')
if [ "$USED_PCT" -gt "$THRESHOLD" ]; then
echo "ALERT: RAM usage at ${USED_PCT}% on $(hostname)" | mail -s "Memory Alert" admin@example.com
fiSkrip ini dapat ditempatkan dalam cron job untuk pemantauan otomatis berkelanjutan — kebutuhan praktis pada setiap VPS dengan cPanel produksi atau server bare-metal.
Lanjutan: Parameter Penyetelan Memori Kernel
Setelah Anda mengidentifikasi tekanan memori, parameter sysctl ini secara langsung memengaruhi perilaku:
# View current swappiness (default: 60)
sysctl vm.swappiness
# Reduce swap tendency (recommended for databases: 10)
sysctl -w vm.swappiness=10
# Increase dirty page write-back aggressiveness
sysctl -w vm.dirty_ratio=15
sysctl -w vm.dirty_background_ratio=5
# Drop page cache manually (use with caution on production)
sync; echo 3 > /proc/sys/vm/drop_cachesvm.swappiness dijelaskan: Nilai 60 berarti kernel akan mulai melakukan swapping ketika RAM 40% terpakai. Untuk server database (MySQL, PostgreSQL, Redis), menetapkan ini ke 10 menjaga data di RAM jauh lebih lama, secara dramatis mengurangi latensi I/O. Untuk sistem desktop atau sistem dengan RAM terbatas, nilai default lebih sesuai.
Jebakan Umum dan Kesalahan Interpretasi
Jebakan 1: Panik karena memori “free” yang rendah
Seperti yang dijelaskan sebelumnya, Linux sengaja menggunakan RAM bebas sebagai cache. Sistem dengan 200 MB bebas tetapi 8 GB tersedia adalah sehat. Selalu baca kolom Available.
Jebakan 2: Menjumlahkan RSS untuk memperkirakan total penggunaan memori
Menjumlahkan nilai RSS ps di semua proses biasanya akan melebihi total RAM fisik karena penghitungan ganda shared library. Gunakan smem -t untuk total sistem yang akurat.
Jebakan 3: Mengabaikan cache Slab
Pada klien atau server NFS yang sibuk dengan banyak file kecil, alokator Slab kernel dapat mengonsumsi gigabyte RAM. Periksa cat /proc/meminfo | grep Slab — memori ini secara teknis dapat diklaim kembali tetapi tidak muncul di alat tingkat proses.
Jebakan 4: Mengacaukan VSZ dengan penggunaan memori sebenarnya
Aplikasi Java mungkin menampilkan VSZ 4 GB tetapi hanya 512 MB RSS. VSZ mencakup file yang dipetakan ke memori, heap yang dicadangkan tetapi tidak dialokasikan, dan shared library — sebagian besar tidak pernah benar-benar dimuat ke RAM fisik.
Jebakan 5: Mengabaikan memori pada beban kerja yang dikontainerisasi
Di dalam container Docker, free menampilkan total memori host, bukan batas cgroup container. Gunakan cat /sys/fs/cgroup/memory/memory.usage_in_bytes dan cat /sys/fs/cgroup/memory/memory.limit_in_bytes untuk metrik tingkat container yang akurat.
Menyiapkan Pemantauan RAM yang Persisten
Untuk lingkungan produksi, perintah point-in-time tidak mencukupi. Pertimbangkan pendekatan ini untuk visibilitas berkelanjutan:
sysstatdengan cron: Mengaktifkan pengumpulan data historissarsecara otomatis.- Prometheus + Node Exporter: Mengambil metrik
/proc/meminfodan mengeksposnya untuk dashboard Grafana. - Netdata: Pemantauan real-time tanpa konfigurasi dengan granularitas per detik dan deteksi anomali memori bawaan.
- Zabbix atau Nagios: Peringatan tingkat enterprise dengan ambang batas memori yang dapat dikonfigurasi dan kebijakan eskalasi.
Saat menjalankan beban kerja pada infrastruktur GPU Hosting, pantau juga GPU VRAM bersama RAM sistem — nvidia-smi --query-gpu=memory.used,memory.free --format=csv menyediakan metrik setara untuk memori GPU.
Untuk lingkungan web hosting yang dikelola melalui VPS Control Panels, sebagian besar panel menyertakan grafik memori bawaan — tetapi ini biasanya melakukan polling pada interval 1–5 menit dan akan melewatkan lonjakan berdurasi singkat yang akan ditangkap oleh vmstat atau sar.
Matriks Keputusan Teknis: Alat Mana yang Digunakan Kapan
| Skenario | Alat yang Direkomendasikan | Perintah | |
|---|---|---|---|
| Pemeriksaan kesehatan sistem cepat | free | free -h | |
| Temukan konsumen memori teratas saat ini | ps atau htop | `ps aux –sort=-%mem | head -15` |
| Akuntansi per proses yang akurat | smem | smem -s pss -r | |
| Mendiagnosis swapping aktif | vmstat | vmstat 1 10 | |
| Menyelidiki insiden memori di masa lalu | sar | sar -r -f /var/log/sysstat/saDD | |
| Profil proses tertentu secara mendalam | /proc/PID/smaps | cat /proc/PID/smaps | |
| Pemantauan produksi berkelanjutan | Prometheus + Node Exporter | — | |
| Batas memori container | filesystem cgroup | cat /sys/fs/cgroup/memory/memory.usage_in_bytes |
Daftar Periksa Poin-Poin Utama
- Selalu periksa memori Available dari
free -h, bukan kolom Free, untuk menilai ruang yang sebenarnya tersedia. - Gunakan
vmstat 1 5untuk mengonfirmasi atau menyingkirkan swapping aktif sebelum meningkatkan investigasi. - Gunakan
smem -s pss -rdaripadaps aux --sort=-%memsaat Anda membutuhkan angka memori per proses yang akurat — terutama pada server dengan banyak proses yang berbagi library. - Instal
sysstatdi setiap server produksi segera setelah provisioning untuk mengaktifkan pengumpulan data historissar. - Tetapkan
vm.swappiness=10secara persisten di/etc/sysctl.confpada server database untuk meminimalkan penggunaan swap. - Periksa
/proc/meminfountuk nilaiSlabdanDirtyketika alat standar tidak menjelaskan tekanan memori yang diamati. - Untuk beban kerja yang dikontainerisasi, baca file memori cgroup — bukan
free— untuk batas dan penggunaan yang akurat. - Pada lingkungan shared hosting atau VPS, tetapkan baseline memori selama operasi normal agar anomali segera dapat dikenali.
—
Pertanyaan yang Sering Diajukan
Apa perbedaan antara memori “free” dan “available” di Linux?
“Free” adalah RAM yang sama sekali tidak digunakan saat ini. “Available” adalah perkiraan realistis memori yang dapat dialokasikan ke proses baru tanpa memicu swapping — ini mencakup page cache dan buffer yang dapat diklaim kembali. Pada server Linux yang sehat, “free” sering mendekati nol sementara “available” tetap tinggi. Selalu gunakan “available” untuk penilaian kapasitas.
Mengapa jumlah semua nilai RSS proses melebihi total RAM fisik?
RSS (Resident Set Size) menghitung memori bersama — seperti shared library — sekali per proses yang memetakannya. Jika 50 proses masing-masing memetakan shared library 100 MB, total jumlah RSS membengkak 4.900 MB melebihi biaya fisik sebenarnya. Gunakan smem dengan pelaporan PSS untuk menghilangkan penghitungan ganda ini.
Bagaimana cara menemukan proses mana yang memicu Linux OOM killer?
Jalankan dmesg | grep -i "oom|killed process" atau journalctl -k | grep -i oom. Kernel mencatat nama proses yang tepat, PID, dan statistik memori pada saat kejadian kill, termasuk oom_score dari semua proses yang dievaluasi.
Apa yang ditunjukkan oleh penggunaan swap yang tinggi, dan seberapa seriuskah itu?
Penggunaan swap yang berkelanjutan berarti working set sistem melebihi RAM fisik. Kernel mengkompensasi dengan melakukan paging data ke disk, yang biasanya 100–1.000x lebih lambat dari akses RAM. Bahkan aktivitas swap yang sedang menyebabkan latensi aplikasi yang terukur. Ini adalah sinyal pasti untuk mengurangi konsumsi memori, meningkatkan RAM, atau mendistribusikan ulang beban kerja.
Bisakah saya memantau penggunaan RAM di dalam container Docker menggunakan perintah Linux standar?
Perintah standar seperti free di dalam container menampilkan total RAM host, bukan batas cgroup container. Untuk metrik tingkat container yang akurat, baca /sys/fs/cgroup/memory/memory.usage_in_bytes untuk penggunaan saat ini dan /sys/fs/cgroup/memory/memory.limit_in_bytes untuk batas yang dikonfigurasi. Atau, gunakan docker stats <container_name> dari host untuk tampilan yang terformat.
