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.