4 votes

Comment calculer la taille de la mémoire virtuelle dans Mavericks

enter image description here

Je voudrais savoir s'il existe une commande (ou un ensemble de commandes) qui calcule chacun des paramètres (mémoire virtuelle, cache de fichiers et mémoire d'application) énumérés dans la capture d'écran ci-dessus.

1voto

Benjamin Scherer Points 789

Je crois qu'entre top y vm_stat vous pouvez obtenir la plupart de ces résultats, mais sous une forme moins lisible. (Pourquoi voulez-vous le lire depuis le terminal, curiosité ?)

top a la plupart des statistiques de la mémoire physique et virtuelle, mais vm_stats a la même quantité de compressé, et ils ont tous deux des échanges, bien que grâce à la compression cela soit faible.

Je n'ai pas trouvé les spécificités de la mémoire d'application et du Filecache, elles sont incluses dans le compte de la mémoire virtuelle.

vm_stats :

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                              262614.
Pages active:                            818894.
Pages inactive:                          287658.
Pages speculative:                        46300.
Pages throttled:                              0.
Pages wired down:                        411565.
Pages purgeable:                          56793.
"Translation faults":                 255617431.
Pages copy-on-write:                   10812762.
Pages zero filled:                    165910381.
Pages reactivated:                      3419113.
Pages purged:                           2058688.
File-backed pages:                       246635.
Anonymous pages:                         906217.
Pages stored in compressor:              396258.
Pages occupied by compressor:            269783.
Decompressions:                          625574.
Compressions:                           1816628.
Pageins:                                1693962.
Pageouts:                                223513.
Swapins:                                      0.
Swapouts:                                     0.

haut :

Processes: 253 total, 2 running, 6 stuck, 245 sleeping, 1101 threads             14:53:50
Load Avg: 1.42, 1.43, 1.62  CPU usage: 8.52% user, 5.97% sys, 85.50% idle
SharedLibs: 120M resident, 0B data, 26M linkedit.
MemRegions: 70307 total, 2561M resident, 107M private, 577M shared.
PhysMem: 5919M used (1608M wired), 1218M unused.
VM: 631G vsize, 1312M framework vsize, 0(0) swapins, 0(0) swapouts.
Networks: packets: 7933197/5221M in, 5685549/2563M out.
Disks: 1748536/37G read, 1726987/42G written.

Edit : Ok j'ai cherché un outil qui pourrait trouver cette valeur de mémoire virtuelle. Je pense que la valeur de la mémoire virtuelle affichée dans "Activity Monitor" correspond à la quantité de mémoire réellement utilisée. Alors que 'top' montre toute la mémoire virtuelle, et la plupart d'entre elle n'a pas été réellement placée quelque part. Les programmes peuvent demander beaucoup plus de mémoire qu'ils n'en utiliseront, et comme il s'agit de mémoire virtuelle, cela ne coûte rien de leur laisser un grand espace vm tant qu'ils ne l'utilisent pas réellement. Ce lien propose un outil de remplacement supérieur Si vous l'exécutez avec 'sudo', comme 'sudo procexp -all', il vous donne la mémoire virtuelle, plus proche de ce que montre 'Activity Monitor'.

-----------------
Process: 0  Name: kernel_task       Parent:     0   Status: runnable
Flags:   64-bit,system,session leader
UID:        0   RUID:     0 SVUID:     0
GID:        0   RGID:     0 SVGID:     0

Virtual size:       7167M (7515574272)  Resident size:         752M (789536768)
Time:     58.03   =   00.00 (User)    +    58.03 (System)
Syscalls:           0   Mach Traps:       0
Disk I/O: Read   9786K  Written:      88547K

#Threads:  96     (Process has no workqueues)

1voto

Mike Caron Points 212

Vous pouvez utiliser vm_stat y sysctl des commandes de terminal. Bien qu'il n'y ait pas de méthode directe ou de documentation sur la façon d'extraire les nouveaux attributs de ces commandes, nous avons dû faire quelques essais et erreurs jusqu'à ce que nous découvrions les relations entre les paramètres des commandes et l'attribut que nous devons calculer.

Les étapes sont les suivantes :

  1. Ejecutar vm_stat
  2. Exécutez "sysctl hw.memsize" et "sysctl vm.swapusage".
  3. La relation entre l'utilisation de la mémoire qui apparaît dans le moniteur d'activité et les commandes précédentes est décrite dans le document suivant Comment calculer l'utilisation de la mémoire dans Mavericks de manière programmatique ? .

Exemple de sortie de vm_stat :

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                               24428.
Pages active:                           1039653.
Pages inactive:                          626002.
Pages speculative:                       184530.
Pages throttled:                              0.
Pages wired down:                        156244.
Pages purgeable:                           9429.
"Translation faults":                  14335334.
Pages copy-on-write:                     557301.
Pages zero filled:                      5682527.
Pages reactivated:                           74.
Pages purged:                             52633.
File-backed pages:                       660167.
Anonymous pages:                        1190018.
Pages stored in compressor:                 644.
Pages occupied by compressor:               603.
Decompressions:                              18.
Compressions:                               859.
Pageins:                                 253589.
Pageouts:                                     0.
Swapins:                                      0.
Swapouts:                                     0.

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