Il est important de trouver le processus ou l'application monopolisant la mémoire du système en cas de problème de performances. Le message répertorie quelques-unes des commandes de base pour calculer l'utilisation de la mémoire sur un système Linux général.
1. Calculer l'utilisation de la mémoire à l'aide du 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
Pour calculer la mémoire libre à partir de la valeur moyenne, utilisez la formule ci-dessous :
kbmemfree + kbbuffers + kbcached = actual free memory on the system
En utilisant l'exemple ci-dessus :
1772665 + 382184 + 23831757 = 25986606KB
Cela représente environ 24,78 Go de mémoire libre.
2. Calculer l'utilisation de la mémoire à l'aide de la commande gratuite
# free -m total used free shared buffers cached Mem: 32106 30382 1723 3031 373 23273 -/+ buffers/cache: 6736 25370 Swap: 63999 2 63997
Dans l'exemple ci-dessus, pour obtenir de la mémoire libre sur le système, utilisez :
-/+ buffers/cache ==> free column
La colonne gratuite rapporte 25 370 Mo afin de correspondre également au calcul de la sortie sar (en gardant à l'esprit que la valeur moyenne du SAR a été utilisée)
Pour utiliser la mémoire lors de l'utilisation du système :
-/+ buffers/cache ==> used column
Dans notre cas, la mémoire utilisée est de 6736 Mo.
3. Trouvez les 10 meilleurs utilisateurs qui consomment plus de mémoire sur le système en pourcentage
Veuillez utiliser une syntaxe shell simple qui utilise la commande 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
D'après l'observation de l'exemple ci-dessus, root a 349 processus qui occupent 3,3 % de la mémoire, l'utilisateur oracle a 29 processus qui occupent 4 % de la mémoire, l'utilisateur apache1 a 12 processus qui consomment environ 4,8 % de la mémoire, soit au total environ 12 %. Une valeur d'environ 12 % peut également être vue dans la colonne sar "commit".
4. Vérifiez les 10 principaux processus qui consomment RSS (Taille de l'ensemble résident)
Veuillez utiliser une syntaxe shell simple qui utilise la commande 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
La première colonne est RSS , le second est PID , le troisième est USER et le quatrième est Command Executed .
RSS la valeur est la plus importante ici car elle montre la quantité de mémoire que le processus a réellement allouée en Ko , veuillez ne pas utiliser VSZ valeur qui calcule la mémoire « demandée » par processus, car chaque processus alloue une « surcharge » qui est présentée par la valeur VSZ, où RSS signale la véritable allocation de mémoire par processus.
Après le calcul de la sortie RSS, le "utilisé ' la mémoire peut être obtenue et comparée à -/+ tampons/cache - colonne utilisée de la sortie de free command — RSS et la sortie de la commande free doivent correspondre.