Come disattivare la cache del disco in Yosemite

1

Il mio MacBook si blocca costantemente a causa dell'utilizzo di tutta la RAM (8 GB). La cache del disco sembra essere la causa. Il comando sudo purge aiuta solo un po '. In alcune vecchie versioni di OS X, il mio MacBook funzionava bene perché aveva (solo) abbastanza RAM per eseguire Xcode (con un grosso progetto) senza dover continuamente scambiare.

Questo è l'utilizzo della memoria dopo aver compilato il mio progetto una volta. L'utilizzo della memoria di Xcode può aumentare di alcune centinaia in più di MB dopo poche ore di utilizzo.

    
posta keithyip 24.03.2015 - 16:14
fonte

2 risposte

2

Questo non risponde direttamente alla tua domanda dato che non conosco un modo per disattivare il meccanismo della cache dei file in OSX. Detto questo, non riesco a pensare a una buona ragione PERCHÉ vorresti farlo in primo luogo? Cosa ti rende così sicuro a causa della cache dei file?

La cache dei file è una cosa dinamica in quanto diventa più grande man mano che si fa più I / O con il disco, ma viene eliminato e ridotto non appena un'applicazione ha bisogno di RAM per fare qualcosa. Ciò che vive nella cache dei file è copie dei file usati di recente con l'idea che se ne avete bisogno di nuovo poco dopo, l'I / O sarà molto più veloce poiché è già nella RAM. Anche se questo è simile alla funzione cache RAM del vecchio MacOS, la grande differenza qui è che è completamente dinamico e cresce per utilizzare la RAM inutilizzata nel tuo sistema e si ridurrà non appena NULLA ha bisogno di RAM. In altre parole, non blocca la tua memoria e non dovrebbe essere la causa di eventuali rallentamenti sul tuo Mac.

Ciò detto, c'è un po 'di equilibrio tra il modo in cui OSX gestisce la RAM. Ho visto che ci sono dei piccoli ritardi quando le cose entrano / escono dallo stato "compresso" e in generale l'idea è che una volta che qualcosa è compresso, rimarrà lì finché non ci sarà un reale bisogno altrimenti. La causa più grande per un ritardo sarebbe se si stesse utilizzando lo swap poiché questa è la forma più lenta di memoria, ma lo screenshot indica anche 0 byte dedicati allo scambio. Compressione e scambio a parte, non sarei sorpreso se ci fosse un sovraccarico e un ritardo come conseguenza di mescolare tutto questo quando viene utilizzata tutta la RAM. Tuttavia, la domanda potrebbe essere più attorno a ciò che le applicazioni si bloccano quando ci si trova in questa situazione. Forse anche il tuo disco è vicino alla capacità e stai piuttosto vivendo il fatto che HFS + è molto più lento quando il disco è quasi pieno?

In generale, potresti avere qualche vantaggio a breve termine dall'eliminazione o disattivazione della cache dei file, ma rischierei di indovinare che in realtà degraderebbe le tue prestazioni poiché non avresti il vantaggio di una cache del filesystem.

    
risposta data 24.03.2015 - 18:34
fonte
0

Se sudo purge non ha aiutato, prova a disattivare il pager dinamico, ad es.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

Attenzione: questo disabilita completamente l'abilità di paging di Mac OS X, quindi usalo solo quando hai una quantità enorme di RAM, ma il tuo Mac sta ancora utilizzando i file di scambio. Se il tuo sistema è dotato di protezione SIP, dovrai disattivarlo per primo (non consigliato).

Puoi anche rimuovere manualmente i file di scambio da /private/var/vm/ , ad es.

sudo rm -f /private/var/vm/swapfile*

quindi riavvia il computer.

Fonte: Memoria virtuale Mac - Che cos'è, la posizione di scambio e Come disabilitare Swap

Per disabilitare completamente lo swap della memoria, imposta vm_compressor su 1 , ad es.

sudo nvram boot-args="vm_compressor=2"

o impostarlo su 4 come valore predefinito, vedere gli altri valori (da vm_pageout.h ):

#define VM_PAGER_DEFAULT                0x1 /* Use default pager. */
#define VM_PAGER_COMPRESSOR_NO_SWAP         0x2 /* In-core compressor only. */
#define VM_PAGER_COMPRESSOR_WITH_SWAP           0x4 /* In-core compressor + swap backend. */
#define VM_PAGER_FREEZER_DEFAULT            0x8 /* Freezer backed by default pager.*/
#define VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP     0x10    /* Freezer backed by in-core compressor only i.e. frozen data remain in-core compressed.*/
#define VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP       0x20    /* Freezer backed by in-core compressor with swap support too.*/

Per verificare il valore corrente, esegui:

sysctl vm.compressor_mode

Per tornare alla normalità, elimina gli argomenti di avvio di:

sudo nvram -d boot-args

riavvia e ripristina la NVRAM .

Vedi: vm_compressor = VM_PAGER_DEFAULT in Yosemite ha causato il blocco quando la memoria fisica era piena

    
risposta data 05.08.2016 - 16:55
fonte

Leggi altre domande sui tag