Come ottenere la quantità di 'Memoria compressa', per processo (da Terminale)?

4

Come posso usare ps , o qualche sua variazione ... per ottenere un valore che corrisponde grosso modo al valore di "Memoria compressa" Apple riporta in Activity Monitor.app ?

username52036100.124.180268323035512??Rs...com.apple.WebKit.WebContent

Ok,quindisembrachepsauxcidica...

  • 3035512,alias2.83Gb,checorrispondea"Memoria privata"
  • 8026832 , alias 7.48 Gb che non sembra corrispondere a qualsiasi cosa . (Anche se probabilmente potrebbe essere ("Memoria" 3.89 + "Memoria privata" 2.84 + "Memoria compressa" 1.05 )?

C'è un modo "normale" per accedere a questa metrica, o è solo un qualche "magico" valore che Apple ha trovato?

    
posta alex gray 12.12.2016 - 11:24
fonte

3 risposte

3

Non c'è nulla di magico nella memoria compressa. È qualcosa che è stato aggiunto a 10.9 come ultimo passaggio prima che il sistema scambi la RAM in memoria. Secondo John Siracusa , questo serve tre funzioni principali:

Memory compression is a triple play for Mavericks. It’s a performance win; compressing and decompressing data in RAM is much faster than reading from and writing to disk, even an SSD. It’s an energy win; the less time spent moving data between RAM and disk, the more time the system can spend in its idle state. And finally, it’s a capability win; Mavericks can handle much more demanding workloads than previous versions of OS X before crying uncle.

Come ottenere i dettagli dalla riga di comando - potrebbe essere sfuggente. I numeri di compressione complessivi sono facili con un paio di strumenti:

memory_pressure
vm_stat

Non penso che l'invocazione di ps farà il trucco, ma forse qualcuno può correggerlo. Puoi vedere i dettagli di implementazione su questo thread: vm_compressor_mode (vm.compressor_mode) valori per la memoria compressa abilitata in OS X

Il meglio che posso darti è guardare la memoria "scambiata e / o compressa" usando il comando vmmap . Fondamentalmente, prima dello swap, le regioni di memoria contrassegnate per lo swapping sono compresse. Se ciò consente di risparmiare spazio sufficiente per alleviare l'algoritmo di scambio, non si verifica alcuno scambio. Altrimenti, le regioni compresse vengono scambiate in memoria.

vmmap -swapped [PID]

Dovresti gestire l'aggiunta delle regioni e non sono sicuro che i report dell'attività monitor siano tutti scambiati e compressi nella colonna che hai menzionato, ma è qualcosa che potresti essere in grado di capire tramite ispezione e / o utilizzo Strumenti da Xcode per correlare ciò che vedi dalla riga di comando con il monitor attività per alcuni processi.

    
risposta data 12.12.2016 - 16:07
fonte
1

Funziona per me:

VAR='top -l 1 | awk '/processName/  {print $10 }''

Per essere compresso + memoria normale

VAR='top -l 1 | awk '/processName/  {print $8 + $10 }''
    
risposta data 25.09.2017 - 15:16
fonte
-5

ActivityMonitor: fai clic sul pulsante Memoria, quindi scegli la colonna CompressedMemory.

    
risposta data 12.12.2016 - 12:19
fonte

Leggi altre domande sui tag