GNU/Linux >> Belajar Linux >  >> Linux

Cara Menghitung Penggunaan Memori di Linux menggunakan sar, ps, dan gratis

Penting untuk menemukan proses atau aplikasi yang memonopoli memori sistem jika terjadi masalah kinerja. Postingan tersebut mencantumkan beberapa perintah dasar untuk menghitung penggunaan memori pada sistem Linux umum.

1. Hitung penggunaan memori menggunakan SAR

# sar -r 1 10
Linux 2.6.32-504.el6.x86_64 (geeklab) 	03/05/2018 	_x86_64_	(16 CPU)

10:17:41 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
10:17:42 AM   1772488  31104712     94.61    382184  23831756  11675188     11.86
10:17:43 AM   1777348  31099852     94.59    382184  23831756  11675188     11.86
10:17:44 AM   1778412  31098788     94.59    382184  23831756  11675188     11.86
10:17:45 AM   1776720  31100480     94.60    382184  23831756  11675072     11.86
10:17:46 AM   1777932  31099268     94.59    382184  23831760  11675072     11.86
10:17:47 AM   1780848  31096352     94.58    382184  23831760  11675072     11.86
10:17:48 AM   1774460  31102740     94.60    382184  23831760  11675644     11.86
10:17:49 AM   1740080  31137120     94.71    382184  23831760  11717568     11.91
10:17:50 AM   1773608  31103592     94.61    382184  23831708  11675076     11.86
10:17:51 AM   1774752  31102448     94.60    382184  23831796  11675076     11.86
Average:      1772665  31104535     94.61    382184  23831757  11679414     11.87

Untuk menghitung memori bebas dari nilai Rata-rata gunakan rumus di bawah ini:

kbmemfree + kbbuffers + kbcached = actual free memory on the system

Menggunakan contoh di atas:

1772665 + 382184 + 23831757 = 25986606KB

Itu sekitar 24,78 GB memori bebas.

2. Hitung penggunaan memori menggunakan perintah gratis

# free -m
             total       used       free     shared    buffers     cached
Mem:         32106      30382       1723       3031        373      23273
-/+ buffers/cache:       6736      25370
Swap:        63999          2      63997

Dari contoh di atas, untuk mendapatkan memori bebas pada sistem gunakan:

-/+ buffers/cache ==> free column

Kolom gratis melaporkan 25370 MB sehingga cocok dengan perhitungan keluaran sar juga (dengan mengingat bahwa dalam nilai Rata-rata SAR digunakan)

Untuk mendapatkan memori yang digunakan pada penggunaan sistem:

-/+ buffers/cache ==> used column

Dalam kasus kami, memori yang digunakan adalah 6736MB.

3. Temukan 10 pengguna teratas yang menghabiskan lebih banyak memori pada sistem dalam persentase

Silakan gunakan sintaks shell sederhana yang menggunakan perintah ps:

# ps -eo user,pcpu,pmem | tail -n +2 | awk '{num[$1]++; cpu[$1] += $2; mem[$1] += $3} END{printf("NPROC\tUSER\tCPU\tMEM\n"); for (user in cpu) printf("%d\t%s\t%.2f\t%.2f\n",num[user], user, cpu[user], mem[user]) }'
NPROC	USER	  CPU	MEM
29	oracle	  0.10	4.00
1	ntp	  0.00	0.00
1	rpc	  0.00	0.00
5	user	  0.00	0.00
1	dbus	  0.00	0.00
1	mysql	  0.00	0.30
12	daemon	  0.00	0.60
2	postfix	  0.00	0.00
12	apache1	  2.40	4.80
1	rpcuser	  0.00	0.00
349	root	  7.70	3.30

Dari pengamatan contoh di atas, root memiliki 349 proses yang memakan 3,3% memori, oracle pengguna memiliki 29 proses yang memakan 4% memori, pengguna apache1 memiliki 12 proses yang memakan sekitar 4,8% memori, yang totalnya sekitar 12%. Nilai sekitar 12% juga dapat dilihat pada kolom sar 'commit'.

4. Periksa 10 Proses teratas yang menggunakan RSS ( Resident Set Size )

Silakan gunakan sintaks shell sederhana yang menggunakan perintah ps:

# ps -e -orss,pid=,user=,args=, | sort -b -k1,1n | pr -TW$COLUMNS| tail -10
74336   5509 root     /opt/perf/bin/perfalarm
77212   8389 oracle   /grid/CRS/bin/ohasd.bin reboot
78216   9731 root     /opt/OV/lbin/agtrep/agtrep -start
96768   9808 root     /opt/OV/hpcs/hpsensor
108580 12073 root     /usr/lib/systemd/systemd-journald
136260 76477 root     storapid start -name storapid
178316  5350 root     /opt/OV/bin/oacore oacore /var/opt/OV/conf/oa/PipeDefinitions/oacore.xml
186168 10367 oracle   /grid/CRS/bin/oraagent.bin
1013484 31562 root    vxconfigd -x syslog
1317360 76463 root    vxencryptd

Kolom pertama adalah RSS , yang kedua adalah PID , yang ketiga adalah USER dan keempat adalah Perintah Dieksekusi .

RSS value adalah yang paling penting di sini karena ini menunjukkan berapa banyak memori yang sebenarnya dialokasikan oleh proses dalam KB , jangan gunakan VSZ nilai yang menghitung memori 'diminta' berdasarkan proses, karena setiap proses mengalokasikan 'overhead' yang disajikan oleh nilai VSZ, di mana RSS melaporkan alokasi memori sebenarnya berdasarkan proses.

Setelah penghitungan keluaran RSS, 'digunakan ' memori dapat diperoleh dan dibandingkan dengan -/+ buffers/cache – kolom yang digunakan dari output gratis command — baik RSS maupun output dari perintah gratis harus cocok.


Linux
  1. Cara Memeriksa Ukuran Total RAM dan Penggunaan Memori di Linux

  2. Bagaimana cara mencatat konsumsi memori di Linux?

  3. membatasi penggunaan memori di R di bawah linux

  1. Penggunaan Memori Linux

  2. Cara mengetahui penggunaan memori pengguna di linux

  3. Bagaimana penggunaan memori dilaporkan di Linux?

  1. Menggunakan Perintah gratis Linux

  2. Cara Menghapus Buffer Memori dan Cache di Linux

  3. Linux – Menentukan Penggunaan Memori dengan Benar di Linux?