GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir le pourcentage d'utilisation de la mémoire avec vmstat ?

Ce que vous recherchez est la sortie de "free":

$ free
             total       used       free     shared    buffers     cached
Mem:        775556     759456      16100          0      22132     592484
-/+ buffers/cache:     144840     630716
Swap:       500344      21972     478372

Voici une visite :

Il s'agit d'une boîte avec 768 Mo de RAM physique et une partition d'échange de 500 344 Ko.

759456 Ko est "utilisé" (deuxième colonne, ligne du haut). Sur cette mémoire "utilisée", 23 132 Ko sont des tampons (5e colonne, ligne du haut) et 592 484 Ko (sixième colonne, ligne du haut) sont du cache, ce qui laisse 144 840 Ko (2e colonne, 2e ligne) de mémoire physique utilisée par les processus actifs.

Lorsque vous considérez que la mémoire utilisée par les tampons et le cache pourrait être utilisée pour les processus, cela laisse 630 716 Ko (3e colonne, 2e ligne) de mémoire physique libre.

La partition swap, comme je l'ai dit, est de 500344 Ko (1ère colonne, rangée du bas). 21 972 Ko (2e colonne, ligne du bas) du fichier d'échange sont en cours d'utilisation, ce qui laisse 478 372 Ko (3e colonne, ligne du bas) libres.

Ainsi, votre définition de % de mémoire libre dépend si vous comptez ou non les tampons et le cache, et si vous comptez l'échange ou non.

Cela devrait vous donner assez pour continuer à calculer un pourcentage comme bon vous semble.

Voici le résultat de top and free :

$ top -n1 | grep "used," ; free
Mem:    775556k total,   751472k used,    24084k free,    20776k buffers
Swap:   500344k total,    21972k used,   478372k free,   586648k cached

             total       used       free     shared    buffers     cached
Mem:        775556     751344      24212          0      20776     586648
-/+ buffers/cache:     143920     631636
Swap:       500344      21972     478372

Vous pouvez voir à quel point top et free s'accordent (bien qu'avec une petite différence - il s'agit d'une machine multi-utilisateurs et l'utilisation de la mémoire des programmes top et gratuits y est reflétée).

Ajoutez un "-s" lorsque vous appelez vmstate, et vous verrez à peu près la même sortie, juste sous une forme différente :

$ vmstat -s ; free
       775556  total memory
       759920  used memory
       674680  active memory
        18440  inactive memory
        15636  free memory
        21892  buffer memory
       594372  swap cache
       500344  total swap
        21972  used swap
       478372  free swap
       ... output truncated ...

             total       used       free     shared    buffers     cached
Mem:        775556     759920      15636          0      21892     594372
-/+ buffers/cache:     143656     631900
Swap:       500344      21972     478372

Vous pouvez voir que vmstat affiche tous les mêmes numéros que free.


J'ai la même question avec vous et j'ai trouvé une formule

vmstat -s | awk  ' $0 ~ /total memory/ {total=$1 } $0 ~/free memory/ {free=$1} $0 ~/buffer memory/ {buffer=$1} $0 ~/cache/ {cache=$1} END{print (total-free-buffer-cache)/total*100}'

Je l'ai testé sur la version vmstat de procps-ng 3.3.10 et vmstat de procps-ng 3.3.9


Linux
  1. Comment utiliser la commande Vmstat sous Linux expliquée avec des exemples

  2. Linux - Utilisation réelle de la mémoire ?

  3. Comment calculer l'utilisation de la mémoire sous Linux en utilisant sar, ps et free

  4. Comment libérer l'utilisation d'inode ?

  5. Comment obtenir des statistiques système avec node.js

Commande gratuite Linux (vérifier l'utilisation de la mémoire)

Comment visualiser l'utilisation de l'espace disque avec Vizex sous Linux

Comment vérifier l'utilisation de la mémoire dans Debian 10

Comment interpréter l'utilisation de la mémoire Top/htop ?

Comment démarrer avec Arch Linux

Comment profiler l'utilisation de la mémoire ?