Comme @khedron le dit , vous pouvez voir cette information dans Activity Monitor.
Si vous le souhaitez sur la ligne de commande, voici un script Python que j'ai écrit (ou peut-être modifié de quelqu'un d'autre, je ne me souviens plus, il est assez ancien maintenant) pour vous montrer les quantités de mémoire câblée, active, inactive et libre:
#!/usr/bin/python
import subprocess
import re
# Get process info
ps = subprocess.Popen(['ps', '-caxm', '-orss,comm'], stdout=subprocess.PIPE).communicate()[0].decode()
vm = subprocess.Popen(['vm_stat'], stdout=subprocess.PIPE).communicate()[0].decode()
# Iterate processes
processLines = ps.split('\n')
sep = re.compile('[\s]+')
rssTotal = 0 # kB
for row in range(1,len(processLines)):
rowText = processLines[row].strip()
rowElements = sep.split(rowText)
try:
rss = float(rowElements[0]) * 1024
except:
rss = 0 # ignore...
rssTotal += rss
# Process vm_stat
vmLines = vm.split('\n')
sep = re.compile(':[\s]+')
vmStats = {}
for row in range(1,len(vmLines)-2):
rowText = vmLines[row].strip()
rowElements = sep.split(rowText)
vmStats[(rowElements[0])] = int(rowElements[1].strip('\.')) * 4096
print 'Wired Memory:\t\t%d MB' % ( vmStats["Pages wired down"]/1024/1024 )
print('Active Memory:\t\t%d MB' % ( vmStats["Pages active"]/1024/1024 ))
print('Inactive Memory:\t%d MB' % ( vmStats["Pages inactive"]/1024/1024 ))
print('Free Memory:\t\t%d MB' % ( vmStats["Pages free"]/1024/1024 ))
print('Real Mem Total (ps):\t%.3f MB' % ( rssTotal/1024/1024 ))
Comme vous pouvez le constater, vous pouvez simplement appeler à vm_stat
partir de la ligne de commande, même si cela compte en pages de 4 Ko, d'où le script pour convertir en Mo.
Le script compte également l'utilisation "réelle de la mémoire" de tous les processus en cours à des fins de comparaison (elle ne correspond à aucune valeur spécifique des statistiques de la mémoire globale, car la mémoire est une bête complexe).
Voici un exemple de la sortie du script sur mon système:
[user@host:~] % memReport.py
Wired Memory: 1381 MB
Active Memory: 3053 MB
Inactive Memory: 727 MB
Free Memory: 1619 MB
Real Mem Total (ps): 3402.828 MB
(très légèrement ajusté pour correspondre à la taille de l'onglet sur StackExchange;)
ps -caxm -orss= | awk '{ sum += $1 } END { print "Resident Set Size: " sum/1024 " MiB" }'
La commande dont vous avez besoin est
vm_stat
- similaire à l'outil Unix traditionnel,vmstat
mais avec quelques différences spécifiques à MACH. La page de manuel est bien écrite.la source
Il semble que la raison pour laquelle c'est lent est parce que
top -l 1
le délai standard entre les rafraîchissements est toujours retardé d'une seconde après la fin. L'ajout de -s 0 à la commande la complète instantanément:De plus, pour plus de clarté, j'aime afficher chaque composant mem sur sa ligne. J'ai donc ajouté 9 espaces pour l'alignement sur 'PhysMem:' dans la chaîne de remplacement sed:
la source
vm_stat
.top
est nettement plus lente que l'appel,vm_stat
mais l'top
extrait est beaucoup moins détaillé et l'unité est le mégaoctet et non les pages. Pour les sauts de ligne encore moins bavard peuvent être enlevés etawk
peuvent être remplacés pargrep
résultattop -l 1 | grep ^PhysMem
.page
unités inutiles / nécessite une sorte de post-traitement de hacky pour rendre ces unités interprétables.Voici un simple support pour rendre la
vm_stat
sortie plus conviviale:la source
Si vous êtes uniquement intéressé par l'utilisation de swap (quelle serait la dernière ligne de sortie
free
):la source
Il existe une commande de terminal similaire à celle de
free
Mac OS X ... elle s’appelletop
Pour plus d'informations, vous pouvez consulter ce document d'assistance Apple.
Mac OS X: Comment afficher l'utilisation de la mémoire avec l'utilitaire "top"
la source
htop
En prenant simplement la solution de @zack et en ajoutant des blocs inactifs et spéculatifs.
la source
Pour les experts Unix uniquement:
la source
top -l1 | awk '/PhysMem/ {print $2}'
sur macos> = High Sierrala source
tcsh
(ma valeur par défaut) oush
. La commande est-elle spécifique au shell?bash
etksh
spécifique. Entcsh
essai: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 faireecho $free
pour imprimer la quantité de mémoire disponible. Vous pouvez aussi créer un alias:alias free echo $freeMB MiB free
.D'après votre autre question , je pense que vous avez trouvé l'utilisation de l'utilitaire Activity Monitor pour examiner l'état de votre mémoire, n'est-ce pas? Pour mémoire, il se trouve dans / Applications / Utilitaires / Activity Monitor.app.
la source
Il n’existe pas d’équivalent exact distribué avec Mac OS X, mais il existe deux autres moyens d’obtenir ces informations:
system_profiler
- Affiche toutes les informations du profil système du Mac dans le shellsysctl -a | grep mem
ousysctl hw.memsize
(total mem)la source
Vous pouvez essayer la commande
allmemory
si vous voulez un outil de ligne de commande qui rapporte une utilisation extrêmement détaillée de la mémoire.la source
allmemory
peut être longue et inattendue - pour moi aujourd'hui, plus de quatre minutes par course, YMMV. Une courseallmemory
poursysdiagnose
peut prendre beaucoup plus de temps.Ce qui précède représente beaucoup trop d’efforts à mon goût, et suppose que vous avez également une installation à part entière ... Si vous avez démarré à partir d’un disque de démarrage Mac OS X, toutes les solutions ci-dessus ne fonctionneront évidemment pas. .. Utilisez simplement la commande "hostinfo", voici le résultat de mon MBAir mi-2012 exécutant Mavericks (10.9.1):
L’avantage de cette commande, c’est qu’il est livré avec le programme d’installation 10.9 également
/usr/bin
, il est donc très pratique,idéalement, si vous voulez juste de la RAM, alors tapez:
Je ne sais pas si hostinfo existe sur les précédents systèmes d'exploitation ...
la source
hostinfo
afficher la mémoire utilisée ?Cela devrait bien faire :)
la source
Vous pouvez essayer la
memory_pressure
commande. Voir la sortie de mon système (i5, 4 Go de RAM)la source
Commandes Bash "free like" pour Mac OSX.
Ceci est la deuxième réédition de ce post. Au début, j'en ai 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 standard d'OS X), il est également corrigé, je l'utilise maintenantawk
. Le-2
sont toujours là ;-). Le mieux est peut-être maintenant de tester et d’évaluer les commandes elles-mêmes?J'ai passé en revue ma première idée de créer une seule commande orientée utilisateur avec un affichage convivial et hautement configurable.
free-like.sh
un script toujours orienté "utilisateur final", avec plus de précision, un affichage "convivial" et configurable, mais avec plus de calculs et de consommation de ressources,free-like-raw.sh
, commande maintenant orientée développeur, sysadmin, etc., avec moins de calcul et moins 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 tailles de bloc). L'imprécision résultant de la transformation en octets (number_of_blocks * block_size, la valeur par défaut des calculs) sera comprise entre 0 <la taille du bloc. Les données pour la mémoire virtuelle sont extraites de latop
commande. L'imprécision est ici liée à l'unité de référence de latop
commande: kilo, méga, giga.Les calculs sont effectués en utilisant
awk
ce respect arrondi (par opposition àbc
).awk
est aussi plus rapide quebc
. Vous pouvez voir le script de test ici: http://myblog.robert.sebille.name/article29.html#awk-bcVous pouvez afficher 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 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 affiche un exemple d'affichage pour chaque commande et leur aide intégrée (
./free-like.sh -h
et./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 tiens.
la source
gawk
ce qui ne fait pas partie d’une installation OS X standard.Cela fonctionne à mon $ PS1:
https://github.com/vigo/dotfiles-universal/blob/master/prompts/free_memory
(Version Ruby: https://github.com/vigo/dotfiles-universal/blob/master/prompts%2Ffree_memory.rb )
la source
Je pense que ces jours-ci
psutil
et sonmeminfo.py
script fournissent les détails les plus utiles sur l'utilisation de la mémoire. Pour l'essayer:La sortie qu'il produit ressemble à ceci:
Remarquez la
Available
ligne, qui indique une estimation de la quantité de mémoire réellement disponible pour démarrer de nouvelles applications , sans permutation.Je ne connais aucun autre utilitaire MacOS fournissant cette estimation de la mémoire disponible.
À des fins de comparaison: sur un système Linux, le même type d’informations est fourni dans la
available
colonne de sortie des versions actuelles defree
:Cette
available
colonne enfree
sortie vient juste deMemAvailable
dans/proc/meminfo
. Et sur les systèmes qui en ont/proc/meminfo
, psutil l’utilise également pour estimer la mémoire disponible.Mais MacOS n'a pas
/proc/meminfo
, pour ainsi estimer la mémoire disponible dans ce cas, psutil utilise le même algorithme utilisé sur Linux pour calculerMemAvailable
pour/proc/meminfo
.la source
vm_stat
vous montre en kilo-octets.L'oneliner ci-dessous indique en mégaoctets:
Résultats:
la source
Si vous utilisez fishshell sur osx, avec son gestionnaire de packages.
J'ai écrit l'extension suivante: https://github.com/fisherman/free
C'est une refonte complète de la commande free pour osx. Voyez vous-même
la source
top ou htop peuvent également aider à résoudre le problème.
la source