GNU/Linux >> Znalost Linux >  >> Linux

Jak vypočítat využití paměti v Linuxu pomocí sar, ps a zdarma

V případě problému s výkonem je důležité najít proces nebo aplikaci, která zatěžuje paměť systému. Příspěvek uvádí několik základních příkazů pro výpočet využití paměti v obecném systému Linux.

1. Vypočítejte využití paměti pomocí 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

Pro výpočet volné paměti z průměrné hodnoty použijte níže uvedený vzorec:

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

Použití výše uvedeného příkladu:

1772665 + 382184 + 23831757 = 25986606KB

To je přibližně 24,78 GB volné paměti.

2. Vypočítejte využití paměti pomocí příkazu free

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

Z výše uvedeného příkladu pro získání volné paměti v systému použijte:

-/+ buffers/cache ==> free column

Volný sloupec hlásí 25370 MB, takže odpovídá i výpočtu výstupu sar (je třeba mít na paměti, že v poli SAR byla použita průměrná hodnota)

Chcete-li použít použitou paměť na systému:

-/+ buffers/cache ==> used column

V našem případě je použitá paměť 6736 MB.

3. Najít Top 10 uživatelů, kteří spotřebovávají více paměti v systému v procentech

Použijte prosím jednoduchou syntaxi shellu, která využívá příkaz 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

Z pozorování výše uvedeného příkladu má root 349 procesů, které zabírají 3,3 % paměti, uživatel oracle má 29 procesů, které zabírají 4 % paměti, uživatel apache1 má 12 procesů, které spotřebovávají přibližně 4,8 % paměti, což je celkem asi 12 %. Hodnotu kolem 12 % lze také vidět ve sloupci sar ‘commit’.

4. Zaškrtněte 10 hlavních procesů, které spotřebovávají RSS ( velikost rezidentní sady )

Použijte prosím jednoduchou syntaxi shellu, která využívá příkaz 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

První sloupec je RSS , druhý je PID , třetí je USER a čtvrtý je Příkaz proveden .

RSS hodnota je zde nejdůležitější, protože ukazuje, kolik paměti proces skutečně alokoval v KB , nepoužívejte prosím VSZ hodnota, která počítá „požadovanou“ paměť podle procesu, protože každý proces přiděluje „režii“, která je prezentována hodnotou VSZ, kde RSS hlásí skutečnou alokaci paměti podle procesu.

Po výpočtu výstupu RSS bude „použito “ paměť lze získat a porovnat s -/+ buffery/cache – použitý sloupec z výstupu free příkaz — RSS i výstup z příkazu free by se měly shodovat.


Linux
  1. Linux – správně určit využití paměti v Linuxu?

  2. Jak zkontrolovat celkovou velikost RAM a využití paměti v Linuxu

  3. Jak zaznamenat spotřebu paměti v Linuxu?

  1. Využití paměti Linuxu

  2. Jak odstranit vyrovnávací paměti a mezipaměť v Linuxu

  3. omezení využití paměti v R pod linuxem

  1. Pomocí příkazu Linux zdarma

  2. Jak zjistit využití uživatelské paměti v linuxu

  3. Jak se v Linuxu hlásí využití paměti?