Jika server Linux Anda tampaknya mengalami penurunan kinerja, maka titik awal yang baik saat pemecahan masalah adalah memeriksa penggunaan memori saat ini. mengingat hal itu, artikel ini akan membahas beberapa cara Anda dapat memeriksa penggunaan RAM di Linux untuk membantu Anda mendiagnosis apa yang mungkin menyebabkan server Linux Anda melambat.
Lihat Penggunaan Memori dengan /proc/meminfo
Proc
adalah sistem file virtual di Linux yang berisi informasi runtime system. Banyak Linux system utilities melakukan panggilan ke file dalam direktori ini untuk mengambil dan menampilkan informasi tentang sistem. File meminfo berisi detail tentang penggunaan memori sistem Linux:
[root@server ~]# cat /proc/meminfo MemTotal: 8008700 kB MemFree: 7565820 kB MemAvailable: 7644696 kB Buffers: 29800 kB Cached: 275844 kB SwapCached: 0 kB Active: 158896 kB Inactive: 177560 kB Active(anon): 31012 kB Inactive(anon): 16652 kB Active(file): 127884 kB Inactive(file): 160908 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 4194296 kB SwapFree: 4194296 kB Dirty: 4 kB Writeback: 0 kB AnonPages: 30864 kB Mapped: 29120 kB Shmem: 16856 kB Slab: 37364 kB SReclaimable: 23164 kB SUnreclaim: 14200 kB KernelStack: 1632 kB PageTables: 2924 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 8198644 kB Committed_AS: 169604 kB VmallocTotal: 34359738367 kB VmallocUsed: 37384 kB VmallocChunk: 34359685116 kB HardwareCorrupted: 0 kB AnonHugePages: 4096 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 67436 kB DirectMap2M: 8321024 kB
Ini adalah cara cepat dan sederhana untuk memeriksa penggunaan memori dan seharusnya perintah ini bekerja pada distribusi linux apa pun. Daripada membaca semua output dari meminfo
, Anda dapat meringkasnya menggunakan grep
, contohnya seperti berikut ini:
[root@server ~]# cat /proc/meminfo | grep MemTotal MemTotal: 8008700 kB
Karena ini adalah keluaran teks, ada banyak cara di mana data ini dapat diambil menggunakan bash script:
[root@server ~]# awk '{ printf "%.2f", $2/1024/1024 ; exit}' /proc/meminfo 7.64
Pada contoh di atas, awk telah digunakan untuk mengurai output
dari /proc/meminfo
dan mengubah nilai memtotal menjadi Gb
.
Periksa Penggunaan Memori Linux menggunakan perintah "free"
Perintah free
adalah cara mudah lainnya untuk melihat detail penggunaan memori Linux. Menjalankannya tanpa argumen apa pun akan menampilkan yang berikut:
[root@server ~]# free total used free shared buff/cache available Mem: 8008700 113796 7566068 16856 328836 7644968 Swap: 4194296 0 4194296
Menjalankannya lagi, tetapi dengan opsi -h
menampilkan hasil yang lebih mudah dibaca, dengan nilai unit memori ditampilkan:
[root@server ~]# free -h total used free shared buff/cache available Mem: 7.6G 111M 7.2G 16M 321M 7.3G Swap: 4.0G 0B 4.0G
detail informasi yang ditampilkan adalah sebagai berikut
total | Total installed memory (Physical Memory installed on the system) |
used | Memory currently in use |
free | Unused memory on the system |
shared | Memory shared by multiple processes on the system |
buffers | Memory reserved by the OS to allocate as buffers when process need them |
cached | Recently used files cached in RAM |
buff/cache | Buffers + Cache |
available | How much memory is available, without swapping. |
sesuatu yang keren dari perintah free adalah ia dapat menampilkan statistik penggunaan memori menggunakan nilai unit memori yang berbeda. Opsi help
menunjukkan banyak unit memori yang tersedia:
Options: -b, --bytes show output in bytes --kilo show output in kilobytes --mega show output in megabytes --giga show output in gigabytes --tera show output in terabytes --peta show output in petabytes -k, --kibi show output in kibibytes -m, --mebi show output in mebibytes -g, --gibi show output in gibibytes --tebi show output in tebibytes --pebi show output in pebibytes -h, --human show human-readable output --si use powers of 1000 not 1024 -l, --lohi show detailed low and high memory statistics -t, --total show total for RAM + swap -s N, --seconds N repeat printing every N seconds -c N, --count N repeat printing N times, then exit -w, --wide wide output --help display this help and exit -V, --version output version information and exit
Untuk menampilkan penggunaan memori Linux dalam gigabyte, berikut ini dapat digunakan:
[root@server ~]# free -g total used free shared buff/cache available Mem: 7 0 7 0 0 7 Swap: 3 0 3
Sekarang, mari kita lihat bagaimana menggunakan perintah top
untuk melihat penggunaan memori.
Melihat penggunaan Memori menggunakan Perintah "top"
Perintah top
adalah perintah Linux yang terkenal untuk melihat informasi sistem Linux secara realtime (waktu nyata), termasuk penggunaan memori. Untuk menjalankan perintah top:
[root@server ~]# top
outputnya akan seperti dibawah ini
top - 03:06:20 up 12:57, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 88 total, 1 running, 87 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.5 us, 0.0 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8008700 total, 7564564 free, 115248 used, 328888 buff/cache KiB Swap: 4194296 total, 4194296 free, 0 used. 7643476 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 43260 3592 2472 S 0.0 0.0 0:03.03 systemd
perhatikan bagian di atas output menampilkan penggunaan memori sistem secara keseluruhan:
KiB Mem : 8008700 total, 7564564 free, 115248 used, 328888 buff/cache KiB Swap: 4194296 total, 4194296 free, 0 used. 7643476 avail Mem
Anda juga dapat melihat penggunaan memori dari setiap proses dengan memeriksa kolom %MEM
. Jika Anda telah bekerja dengan host VMware ESXi, Anda akan melihat ini mirip dengan esxtop.