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 ?

24voto

Elliot Foster Points 408

Vous pouvez essayer le memory_pressure commande. Voir la sortie de mon système (i5, 4 GB RAM)

The system has 2147483648 (524288 pages with a page size of 4096).

Stats: 
Pages free: 90009 
Pages purgeable: 139593 
Pages purged: 7496548 

Swap I/O:
Swapins: 470466 
Swapouts: 530913 

Page Q counts:
Pages active: 407739 
Pages inactive: 148277 
Pages speculative: 16200 
Pages throttled: 0 
Pages wired down: 263064 

Compressor Stats:
Pages used by compressor: 122815 
Pages decompressed: 7327420 
Pages compressed: 17625795 

File I/O:
Pageins: 1538997 
Pageouts: 86692 

System-wide memory free percentage: 63%

0 votes

C'est presque exactement ce que je voulais : un moyen de voir la pression de la mémoire sur le système. Ce n'est pas aussi facile/simple à voir que le graphique de pression qui s'affiche sur Activity Monitor, mais c'est ce que j'ai trouvé de mieux sur Terminal jusqu'à présent.

22voto

z4mba Points 923

Il existe une commande de terminal similaire à free sur Mac OS X... il s'appelle top

Pour plus d'informations, vous pouvez consulter ce document du support Apple.

Mac OS X : Comment visualiser l'utilisation de la mémoire avec l'utilitaire " top " ?

16voto

Clue Less Points 965

Je prends juste la solution de @zack et l'ajout de blocs inactifs et spéculatifs.

#!/bin/bash

FREE_BLOCKS=$(vm_stat | grep free | awk '{ print $3 }' | sed 's/\.//')
INACTIVE_BLOCKS=$(vm_stat | grep inactive | awk '{ print $3 }' | sed 's/\.//')
SPECULATIVE_BLOCKS=$(vm_stat | grep speculative | awk '{ print $3 }' | sed 's/\.//')

FREE=$((($FREE_BLOCKS+SPECULATIVE_BLOCKS)*4096/1048576))
INACTIVE=$(($INACTIVE_BLOCKS*4096/1048576))
TOTAL=$((($FREE+$INACTIVE)))
echo Free:       $FREE MB
echo Inactive:   $INACTIVE MB
echo Total free: $TOTAL MB

16voto

TrinitronX Points 1132

Il n'y a pas d'équivalent exact distribué avec Mac OS X, mais il y a quelques autres moyens d'obtenir l'information :

  1. system_profiler - Affiche toutes les informations sur le profil système du Mac dans le shell.
  2. sysctl -a | grep mem ou sysctl hw.memsize (total des mémoires)

1 votes

+1, fonctionne à partir du Terminal en mode Recovery (cmd-r pendant le démarrage)

10voto

Jeremy Skinner Points 721
free="$(( $(vm_stat | awk '/free/ {gsub(/\./, "", $3); print $3}') * 4096 / 1048576)) MiB free"

1 votes

L'édition actuelle de cette commande ne fonctionne pas pour moi en tcsh (mon défaut) ou sh . La commande est-elle spécifique au shell ?

0 votes

Oui, c'est bash y ksh spécifique. Sur le site tcsh essayez : set freeblocks=`vm_stat | grep free | awk '{ print $3 }' | sed 's/\.//'` ; set freeMB=`expr $freeblocks \* 4096 / 1048576`; set free=`echo $freeMB MiB free` . Vous pouvez alors faire echo $free pour imprimer la quantité de mémoire libre. Vous pouvez également créer un alias : alias free echo $freeMB MiB free .

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