257 votes

Existe-t-il une version du Terminal Mac OS X de la commande "free" dans les systèmes Linux ?

Sous Linux, j'utilise souvent l'option gratuit pour voir la quantité actuelle de la mémoire libre et utilisée dans le système. Par exemple :

$ free
             total       used       free     shared    buffers     cached
Mem:       7264256    1010952    6253304          0     371892     189088
-/+ buffers/cache:     449972    6814284
Swap:      8126456         28    8126428

Il ne semble pas exister lorsque j'entre free dans le Terminal de Mac OS X. Existe-t-il une alternative ?

5voto

sideshowbarker Points 961

Je pense que ces jours-ci, psutil et son meminfo.py script fournissent les détails les plus utiles sur l'utilisation de la mémoire. Pour l'essayer :

pip install psutil
curl -O https://raw.githubusercontent.com/giampaolo/psutil/master/scripts/meminfo.py
python ./meminfo.py

La sortie qu'il produit ressemble à ceci :

MEMORY
------
Total      :   16.0G
Available  :    5.5G
Percent    :    65.8
Used       :   13.5G
Free       :    1.5G
Active     :    7.4G
Inactive   :    4.0G
Wired      :    2.1G

SWAP
----
Total      :    1.0G
Used       :   33.5M
Free       :  990.5M
Percent    :     3.3
Sin        :   15.9G
Sout       :   71.6M

Remarquez le Available qui montre une estimation de la quantité de mémoire réellement disponible pour le démarrage de nouvelles applications sans échange.

Je ne connais pas d'autre utilitaire MacOS fournissant cette estimation de la mémoire disponible.

A titre de comparaison : Sur un système Linux, le même type d'information est fourni dans le fichier available dans la sortie des versions actuelles de free :

              total        used        free      shared  buff/cache   available
Mem:           7.8G        552M        182M        156M        7.1G        6.9G
Swap:            0B          0B          0B
Total:         7.8G        552M        182M

Ce available colonne dans free La sortie vient juste de MemAvailable en /proc/meminfo . Et sur les systèmes qui ont /proc/meminfo , psutil s'en sert également pour estimer la mémoire disponible.

Mais MacOS n'a pas /proc/meminfo afin d'estimer la mémoire disponible dans ce cas, psutil emploie le même algorithme utilisé sur Linux pour calculer MemAvailable pour /proc/meminfo .

3voto

Robert Points 41

Commandes Bash "free like" pour Mac OSX.

Il s'agit de la deuxième réédition de ce billet. Au début, j'ai eu deux -1 . Un parce que je ne décrivais pas en anglais, c'est corrigé. L'autre parce que j'ai utilisé gawk (qui ne fait pas partie d'une installation OS X standard), il est également corrigé, j'utilise maintenant awk . Le site -2 sont toujours là ;-). Le mieux est peut-être maintenant de tester et d'évaluer les commandes elles-mêmes ?

Après avoir revu ma première idée de construire une seule commande orientée vers l'utilisateur final avec un affichage convivial et hautement configurable, j'en ai fait deux :

  • free-like.sh un script toujours orienté "utilisateur final", avec plus de précision, un affichage "convivial" et paramétrable, mais avec plus de calculs et de consommation de ressources,

  • free-like-raw.sh un développeur, un administrateur système, etc. orienté commande maintenant, avec moins de calcul et de consommation de ressources, mais aussi avec moins de précision, un affichage moins "convivial".

Les données de la mémoire physique sont extraites des résultats de la commande vm_stat (qui renvoie les résultats en taille de bloc). L'imprécision résultant de la transformation en octets (number_of_blocks * block_size, valeur par défaut des calculs) sera comprise entre 0 < la taille du bloc. Les données relatives à la mémoire virtuelle sont tirées du fichier top commandement. L'imprécision ici est liée à l'unité de référence de la commande top commande : kilo, méga, giga.

Les calculs sont effectués en utilisant awk qui respecte les arrondis (par opposition aux bc ). awk est également plus rapide que bc . Vous pouvez voir le test script ici : http://myblog.robert.sebille.name/article29.html#awk-bc

Vous pouvez visualiser les résultats des commandes en octets (par défaut), en kilo, méga ou giga, avec x décimales dans le cas de free-like.sh et si vous le demandez l'affichage en méga ou giga.

Les scripts sont trop longs pour un article, mais vous pouvez les trouver sur cet article de mon blog : http://myblog.robert.sebille.name/article29.html

L'article est en français, mais il présente un exemple d'affichage pour chaque commande et leur aide intégrée ( ./free-like.sh -h y ./free-like-raw.sh -h ), en anglais. Ces aides décrivent complètement les commandes. L'article affiche également les codes.

L'anglais n'est pas ma langue maternelle. Si quelqu'un veut corriger des erreurs dans l'aide intégrée, il est le bienvenu ;).

le vôtre.

0 votes

En plus d'être plus ou moins inutilisable par quelqu'un qui n'a aucune connaissance du français, votre script semble exiger gawk qui ne fait pas partie d'une installation OS X standard.

0 votes

@patrix : Merci pour vos commentaires je vais faire une description en anglais et je vais traduire l'aide intégrée aussi (actuellement en français). gawk : en fait, j'ai oublié, merci. J'ai rencontré des problèmes de localisation (virgule ou point décimal) avec awk. Ils ont disparu sans que je sache pourquoi. Je suis revenu à awk au lieu de gawk. J'ai eu besoin d'un peu de temps pour ajuster les choses, je reposterai quand ce sera prêt. Le vôtre.

1 votes

Le simple fait de remplacer gawk par awk a fonctionné pour moi sans problème.

3voto

Olivier Refalo Points 121

Si vous utilisez fishshell sur osx, avec fisher son gestionnaire de paquets.

J'ai écrit l'extension suivante : https://github.com/fisherman/free

C'est une refonte complète de la commande libre pour osx. Voyez par vous-même

> free
                 total     used     free   appmem    wired   compressed
Mem:            8.00Gb   6.65Gb   1.95Gb   2.87Gb   2.09Gb   1.86Gb
+/- Cache:               1.24Gb   1.87Gb
Swap(43%):      2048Mb    877Mb   1171Mb
Load Avg:        1.63 1.95 1.95

0 votes

Joli. Je l'ai immédiatement accroché.

2 votes

Le lien est inactif

0 votes

1voto

1 votes

Les réponses sur Ask Different doivent être plus qu'un simple lien. Vous pouvez inclure un lien, mais veuillez le résumer ou l'extraire dans votre réponse. L'idée est de faire en sorte que la réponse soit autonome.

1voto

rubynorails Points 704

vm_stat vous montre en kilo-octets.

L'oneliner ci-dessous indique en mégaoctets :

paste <(vm_stat | awk 'NR>1' | grep -o ".*:") <(for i in $(vm_stat | awk 'NR>1' | tr -d '.' | awk '{print $NF}'); do perl -e "print $i/1024" | awk '{printf "%0.2f", $0}'; echo; done) | column -s: -t

Les retours :

Pages free                      11.06
Pages active                    798.25
Pages inactive                  776.03
Pages speculative               9.15
Pages throttled                 0.00
Pages wired down                303.27
Pages purgeable                 0.95
"Translation faults"            82172.66
Pages copy-on-write             11629.60
Pages zero filled               27685.41
Pages reactivated               1450.70
Pages purged                    91.66
File-backed pages               430.20
Anonymous pages                 1153.24
Pages stored in compressor      481.75
Pages occupied by compressor    149.91
Decompressions                  1277.92
Compressions                    1622.33
Pageins                         13198.02
Pageouts                        66.61
Swapins                         54.34
Swapouts                        90.63

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X