Lorsque j'archive l' free
un des serveurs Prod, cela indique que 70% de la mémoire est utilisée:
total used free shared buffers cached
Mem: 164923172 141171860 23751312 0 4555616 20648048
-/+ buffers/cache: 115968196 48954976
Swap: 8388600 0 8388600
Mais je n'ai pas trouvé quel processus utilise la mémoire, j'ai essayé la top
commande et elle montre le processus utilisant uniquement la mémoire 1.1 et 5.4%
Comment savoir quel processus utilise la mémoire?
Voici les meilleurs résultats de commande:
15085 couchbas 25 0 2784m 2.4g 40m S 183.7 1.5 299597:00 beam.smp
28248 tibco 18 0 124m 100m 3440 S 20.9 0.1 2721:45 tibemsd
15334 couchbas 15 0 9114m 8.6g 3288 S 9.0 5.4 12996:28 memcached
15335 couchbas 18 0 6024 600 468 S 2.0 0.0 1704:54 sigar_port
15319 couchbas 15 0 775m 2516 944 S 0.7 0.0 269:13.41 i386-linux-godu
12167 tibco 16 0 11284 1464 784 R 0.3 0.0 0:00.04 top
12701 root 15 0 451m 427m 2140 S 0.3 0.3 18:25.02 controller
13163 root 11 -5 0 0 0 S 0.3 0.0 289:58.58 vxglm_thread
Réponses:
Cela vous montrera les 10 principaux processus utilisant le plus de mémoire:
using top: lorsque vous avez ouvert top,
m
le processus sera court en fonction de l'utilisation de la mémoire.Mais cela ne résoudra pas votre problème, sous Linux, tout est fichier ou processus. de sorte que les fichiers que vous avez ouverts consommeront également la mémoire. donc cela n'aidera pas.
lsof
vous donnera tous les fichiers ouverts avec la taille du fichier ou le décalage du fichier en octets.la source
head
place de ce script awk - il donne la même sortie et vous vous épargnez en écrivant de nombreux caractères étranges.Votre bélier n'est pas réellement utilisé. Linux met simplement en cache ce qui se trouve sur votre disque par défaut, et place ce qu'il met en cache dans la section "utilisée" de ram.
Si vous chargez des applications qui utilisent réellement cette RAM, ce sera leur utilisation.
Voir http://www.linuxatemyram.com/
la source
Vous pouvez diriger ps et trier pour obtenir le processus en utilisant le plus de mémoire. Il vous permettra également de spécifier d'autres détails de processus que vous souhaitez voir avec:
PS: ce qui précède suppose que votre colonne de mémoire est d'abord " sort -k 1 -n -r "
la source
Vous pouvez utiliser la commande slabtop pour voir quels objets de dalle sont utilisés par le noyau.
Vous pouvez également vérifier la sortie de / proc / meminfo
Recherchez ces 2 lignes dans la sortie
L'exemple ci-dessus montre que 68 Mo de cache de dalle sont utilisés par le noyau et 21 Mo peuvent être récupérés. Pour récupérer, vous pouvez utiliser la technique décrite ici https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/Performance_Tuning_Guide/#s-memory-tunables
la source
Pour une analyse interactive, vous pouvez utiliser
htop
, puis appuyer sur la touche de fonctionF6
pour choisir l'ordre de tri, par exemplePERCENT_CPU
(utilisation de la mémoire en pourcentage),M_RESIDENT
(taille de la mémoire résidente, la mémoire réelle utilisée),M_SIZE
(taille de la mémoire virtuelle) ouM_SHARE
(taille de la memoire partagée). Les deux premiers sont les numéros pertinents .Les lignes vertes sont des fils. Appuyez sur (majuscules)
K
etH
pour les masquer.la source