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.

Daniel Beck
la source
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.

Killinks
la source
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.

ricbax
la source
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
Rohit Malgaonkar
la source
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
mattes
la source