Vorrei sapere se esiste un comando (o una serie di comandi) che calcola ciascuno dei parametri (memoria virtuale, cache di file e memoria di app) elencati nella schermata qui sopra.
Vorrei sapere se esiste un comando (o una serie di comandi) che calcola ciascuno dei parametri (memoria virtuale, cache di file e memoria di app) elencati nella schermata qui sopra.
Puoi usare vm_stat
e sysctl
comandi del terminale. Sebbene non esistesse alcun modo diretto o documentazione su come estrarre i nuovi attributi da questi comandi, abbiamo dovuto fare alcuni tentativi ed errori fino a scoprire le relazioni tra i parametri nei comandi e l'attributo che dobbiamo calcolare.
I passaggi sono i seguenti:
vm_stat
Esempio di output da 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.
Credo che tra top
e vm_stat
potresti ottenere la maggior parte di quell'output, sebbene in una forma meno leggibile. (Perché vuoi leggerlo dal terminale, curiosità?)
top
ha la maggior parte delle statistiche di memoria fisica e virtuale, ma vm_stats
ha la quantità di compressione, e entrambi hanno lo swapping, sebbene grazie alla compressione sia bassa.
Le specifiche di App Memory e Filecache non sono stato trovato, sono incluse nel conteggio della memoria virtuale.
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.
top:
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.
Modifica: Ok ho cercato uno strumento che potesse trovare quel valore della memoria virtuale. Credo che il valore della memoria virtuale mostrato in "Monitoraggio attività" sia la quantità di memoria effettivamente utilizzata. Mentre 'top' mostra tutta la memoria virtuale, e la maggior parte di essa non è stata effettivamente posizionata da qualche parte. I programmi possono richiedere molta più memoria di quello che useranno, e dato che si tratta di memoria virtuale, non costa nulla che gli permetta di avere un grande spazio vm purché non lo usino realmente. Questo link ha uno strumento di sostituzione superiore Se lo esegui con 'sudo' come 'sudo procexp -all' dà fuori da ciò che la memoria virtuale può essere più simile a ciò che mostra "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)
Leggi altre domande sui tag mavericks virtual-memory