Mac OS X sysctl obtient la taille totale et libre de la mémoire


Réponses:


8

Non.

Eh bien, sauf pour la taille totale de la mémoire, que vous auriez pu trouver avec sysctl -a | grep mem( hw.memsize = 4294967296sur ma machine).

vm_stataffiche les mêmes informations que Activity Monitor.appvous, il vous suffit de multiplier la valeur souhaitée par la taille de la page. Les deux sont fournis dans la sortie.


vm_stat: pages gratuit: 12054 .. 12054 * 4096/1024/1024 = 47,08 et montre moniteur d'activité: 103 Mo grab.by/6KSD sortie VM_stats: pastebin.com/BJcxPswv Pourquoi je reçois des valeurs erronées?
kesrut

1
Ajoutez Pages speculativeà ceux gratuits. Vous avez peut-être remarqué que la connexion gratuite + active + inactive + câblée n'ajoute pas à la taille totale affichée dans le moniteur d'activité.
Daniel Beck

3
le grepne semble pas nécessaire - sur mon MacBook Pro, sysctl hw.memsizefonctionne et imprime égalementhw.memsize: 8589934592
ssc

3
top -l 1 | grep PhysMem: | awk '{print $10}'

top -l 1s'exécute topen mode de journalisation (par exemple, sortie de fichier, pas d'affichage / sortie de terminal) pendant une itération, puis quitte Le grep/ awkfiltre la valeur de mémoire libre en topsortie.


YMMV. Sur Sierra, top -l 1 | grep PhysMem:me donne PhysMem: 9674M used (1752M wired), 6701M unused.donc j'ai utilisé top -l 1 | grep PhysMem: | awk '{print $6}'. Merci!
pyb

1

Pourquoi ne pas utiliser la topcommande pour afficher votre utilisation de la mémoire en temps réel?

MISE À JOUR:

Vous pouvez utiliser les commandes suivantes:

sysctl -a | grep hw.usermem
sysctl -a | grep hw.physmem

Pour une liste complète, tapez man sysctl dans le terminal.


Probablement pour une utilisation dans un script.
Daniel Beck

2
Les deux usermemet physmemafficher les valeurs inutiles pour les systèmes plus de 2 Go de RAM. Les deux sont probablement limités par un entier 32 bits signé.
Daniel Beck

Peut-être que je peux utiliser top pour obtenir une sortie unique. Après avoir obtenu la sortie, je vais analyser les valeurs nécessaires.
kesrut

Utilisation inutile grep... sysctl hw.memsize= total sysctl hw.physmem,sysctl hw.usermem
TrinitronX

@DanielBeck a raison, hw.memsizec'est ce que vous voulez probablement pour le total. Voir mon commentaire ici pour plus d'informations
TrinitronX

1

mac os x / linux

$ sysctl -a | grep '^hw\.m'
hw.memsize: 8589934592

Cela ressemble à un petit ajustement aux réponses existantes. Probablement plus approprié comme commentaire.
fixer1234

1

Aucun grep n'est nécessaire.

sysctl -n hw.memsize
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.