Perché dovrei disabilitare il file di scambio in Mac OS X?


51

Mi sono imbattuto in un thread sull'installazione di un'unità SSD in MacBook Pro.
Qualcuno nei commenti ha anche raccomandato di disabilitare il file di scambio ma non ha detto perché:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*

Mi chiedo perché si vorrebbe disabilitare il file di scambio in Mac OS X.
Aumenta le prestazioni? Stabilità?
Qualche svantaggio?

Infine, ha senso disabilitare il file di scambio quando non si utilizza SSD?


11
È spesso disabilitato dai meno esperti perché hanno sentito su alcuni blog che le prestazioni scattate hanno gettato il tetto. Gli SSD forniscono anche un bel banco di prova perché sono intrinsecamente veloci. Non farlo Diminuirà la stabilità e nel tempo porterà a effetti catastrofici. Ad oggi, non ho visto dati reali (validi e affidabili) che mostrino un aumento delle prestazioni. Ed è un componente critico di un sistema operativo, che tu abbia 2 GB o RAM o 120.

2
Quali effetti catastrofici? Solo curioso ... sembra che stia rendendo la mia macchina (MacBook Pro da 4 GB) molto più veloce. Ad esempio, quando apro le finestre di un nuovo terminale non c'è più alcun blocco ... è istantaneo dove ci sono voluti diversi secondi prima. E sono stato in grado di aprire il doppio delle app che userei normalmente e non è successo niente di male.
orange80,

4
orange80: La solita causa di finestre terminali lente è il processo di accesso che cerca il login precedente, che può essere risolto da hushlogin: apple.stackexchange.com/a/54167/22570 - ti è capitato di riavviare dopo aver modificato le impostazioni di scambio, forse ? Non c'è motivo per cui la velocità della finestra del terminale venga migliorata rimuovendo lo swap.
Ken

Capisco che con un SSD di piccola capacità potresti voler liberare spazio. Ma dal lato delle prestazioni, gli SSD sono molto più veloci degli HD, quindi non vedo come disabilitare lo scambio in un sistema operativo basato su SSD migliorerebbe davvero le prestazioni. Qualche esperienza al riguardo? Grazie.

1
In Super User, con una risposta accettata: disabilitare il Dynamic_pager di Mac? (27-04-2012)
Graham Perrin,

Risposte:


39

chiedo perché si vorrebbe disabilitare il file di scambio in Mac OS X. Aumenta le prestazioni? Stabilità? Qualche svantaggio?

Suppongo che la gente lo farebbe per un'unità SSD perché quelle unità non hanno la stessa durata delle unità disco rotanti magnetiche standard. Esiste un numero più limitato di cicli di scrittura, quindi presumibilmente usarli con un file di scambio consumerebbe questi cicli più rapidamente.

Infine, ha senso disabilitare il file di scambio quando non si utilizza SSD?

Se hai molta RAM, questo potrebbe accelerare le prestazioni, ma non è una buona idea in generale. Se ti imbatti nel soffitto della memoria, le cose diventeranno traballanti.

Inoltre, la memoria cablata non viene rilasciata quando diventa non valida, viene rilasciata solo quando viene attivato un evento di uscita pagina, che non si verifica se la memoria virtuale è disabilitata. Quindi non ci vorrà molto perché tutta la tua memoria venga divorata anche se non viene più utilizzata.


4
Il sistema di memoria virtuale mac è molto pigro in quanto crea i file di scambio fisico solo quando è il momento di scambiare la memoria effettiva. Qualunque sia la velocità che potresti vedere non dovendo ritardare le cose per adattarsi a una scrittura da scambiare, sarebbe quasi certamente compensato dai precedenti guadagni di velocità di avere lo swap disponibile in primo luogo. Lo scambio rende i mac più veloci. Il resto della risposta è perfetto : ben fatto!
bmike

2
@geotavros Il sistema di memoria virtuale in Mac OS X non funziona come Windows. Con 4 GB di memoria, fidati di me, il tuo Mac funzionerà più velocemente con la memoria virtuale abilitata. La disabilitazione della VM causerà solo mal di testa e instabilità del sistema.
ghoppe,

3
FYI, un SSD moderno con livellamento della scrittura e una discreta capacità (128 GB), scritto continuamente, avrà un limite del ciclo di scrittura misurato in secoli. Era una paura ragionevole nel 2000 con SSD piccoli e primitivi, ma non più.
Ken

3
Per un MacBookPro5,2 con 8 GB di memoria, il miglioramento delle prestazioni è notevole. Per Snow Leopard o Lion in un VirtualBoxVM il miglioramento è sorprendente. In tutti e tre i casi il sistema operativo sembra utilizzare la memoria in modo da ridurre al minimo il rischio di raggiungere il "limite" (dove tutte le cose si fermano in modo efficace) ma tale rischio permane, quindi è logico osservare l'utilizzo in Activity Monitor.
Graham Perrin,

2
Per informazioni, la VM (o la memoria virtuale) non deve essere confusa con il file di scambio. Windows, OS X, * BSD, Linux, molti Unix utilizzano tutti la memoria virtuale. Di solito l'architettura di questo sistema operativo fornisce una VM per processo, il processo ha allocato memoria all'interno di quest'area e il sistema operativo si occupa di mettere questa memoria allocata sulla RAM fisica o scambiare come il sistema operativo lo ritiene. Avere o meno lo scambio può cambiare in un modo o nell'altro le prestazioni per vari criteri (velocità, reattività, ecc.), Questo dipenderà da ognuno di noi carico di lavoro. Come dicono gli inglesi: il tuo chilometraggio può variare! E molto in questo caso.
Huygens,

27

Il motivo per cui hanno disabilitato il file di scambio è probabilmente la paranoia degli SSD con un numero massimo di scritture per blocco. I file di scambio possono essere scritti frequentemente, probabilmente causando la frammentazione del disco (così come la frammentazione del file system) e, eventualmente, causando il fallimento del disco prima.

Detto questo, questo è sicuramente un caso di ottimizzazione prematura. È quasi sempre un'idea ORRIBILE , ORRIBILE disabilitare il file di scambio. Il file di scambio è disponibile quando i programmi in esecuzione consumano più memoria di quella installata fisicamente. Se lo disabiliti, potresti non essere in grado di eseguire tutti i programmi contemporaneamente (e il limite è molto più basso di quanto ti aspetteresti) o potresti avere problemi (come il blocco e il riavvio forzato del computer) quando esaurisci la memoria.

Quest'ultimo che ho riscontrato (con il file di scambio abilitato) durante lo spazio su disco insufficiente. Ho avuto un disco da 120 gig con ~ 3 concerti gratuiti. Durante la riproduzione di Civilization IV (un grande gioco a schermo intero), il sistema ha esaurito lo spazio sul disco rigido (~ 50 mega gratuiti) e ha presentato la finestra "uccidi app ora". Questo si nascondeva dietro il gioco a schermo intero, quindi il sistema si è appena bloccato. Se non fossi stato in grado di accedere da un altro Mac per uccidere diverse app in remoto, avrei dovuto tenere premuto il pulsante di accensione.


6
Vorrei ribadire che brutta idea sia questa. Lo swap viene utilizzato anche se si dispone di 16 GB di RAM. Non tanto, ma una piccola parte è già scritta in swap. Sempre. È una salvaguardia. E mentre il sistema operativo potrebbe funzionare senza di esso, non puoi essere sicuro di come si comportano le app di terze parti. HD viene scritto su. È un dato di fatto se la vita. E no, non ci sarà alcun aumento delle prestazioni del "mondo reale". Questo è un placebo.

4
@cksum In alcuni scenari specifici del server, gli amministratori di sistema disabiliteranno il file di scambio perché rende più veloce quella specifica configurazione, ma non lo fanno senza test per assicurarsi che entrambi (a) non esauriscano la memoria e (b ) in realtà è più veloce. Ma questo è un server gestito da professionisti: non è mai necessario su una macchina consumer.
CajunLuke,

@cksum Potrei essere d'accordo con la tua prima frase, hai ragione con la seconda, la terza e la quarta, ma il resto è spazzatura. Un sistema operativo non sostituisce "salvaguardia", un sistema operativo si sta scambiando per rendere più memoria disponibile al processo attivo che lo richiederebbe o per velocizzare l'I / O bufferando i dati, così da poter liberare memoria non attiva a lungo nella RAM. Quando si sviluppa un'applicazione, si richiede memoria al sistema operativo, questa memoria fa parte dell'utilizzo della memoria virtuale, in quanto sviluppatore o applicazione non si sa se il sistema operativo inserisce quella memoria o parte di essa nella RAM fisica o nello scambio. (continua)
Huygens,

Quindi, se un'app di terze parti richiede più memoria di quella disponibile, il sistema operativo le darà un errore. Questo è indipendente dall'avere o meno uno swap. Avere lo swap metterà il limite più alto, tutto qui. Per quanto riguarda le prestazioni, se hai 2 utenti connessi, se l'utente attivo utilizza un editor video con file di grandi dimensioni, il sistema operativo potrebbe iniziare a inserire pagine di memoria dell'utente inattivo nello scambio per accelerare le attività svolte dall'utente attivo. In questo caso, ottieni prestazioni migliori in termini di velocità. Tuttavia, il passaggio all'altro utente sarà più lento, il sistema operativo deve rileggere lo scambio. Questo non è un placebo!
Huygens,

1
Una volta (in Linux) ho dimenticato di impostare una partizione di swap durante l'installazione. Quando stavo impiccando, pensavo fosse un bug del kernel - si è scoperto che era la mancanza di memoria di swap mentre giocavo a Mincecraft. usa lo scambio.
Wyatt8740,

12

Hai due grandi risposte che spiegano perché questa è una cattiva idea in quasi tutti i casi in cui il sistema può scrivere su un dispositivo di archiviazione.

Il motivo per cui è possibile disabilitare lo scambio è che il sistema può essere eseguito su supporti di sola lettura come CD, DVD, immagine di rete bloccata utilizzando NetBoot o un telecomando USB di sola lettura come il nuovo programma di installazione Lion o il telecomando di recupero fornito con alcuni mac privi di ottica unità.

Avere memoria virtuale significa che il sistema può funzionare in modo sostanzialmente più veloce e utilizzare meno RAM quando molti programmi usano lo stesso codice di libreria comune. Ogni programma pensa di avere una copia privata di tutto il codice di cui ha bisogno, ma quando esiste una memoria virtuale, il sistema ha un buon modo per mappare la stessa RAM fisica a programmi diversi.

La disabilitazione dello scambio impedisce al mac di utilizzare una piccola parte del tuo disco come cache per un po 'di memoria che è stata calcolata ma il programma non era abbastanza intelligente da scrivere quei risultati in una cache corretta.

Se hai un backup e il tempo di sperimentare, perché non spegnerlo e vedere come cambia la tua esperienza.

Continuerei a scambiare anche se sapessi per certo che dovevo pagare una nuova unità ogni anno. La velocità che mi dà lo scambio è ENORME. Non è sempre così, e a volte quando il sistema si sta rompendo o impaginando, puoi avere il contrario. Molte persone scelgono di eseguire senza swap in modo da ricevere un errore di allocazione della memoria piuttosto che lasciare che il loro mac inizi il paging poiché ciò può rallentare un computer quando le cose non funzionano senza problemi.

Il tuo caso con un SSD potrebbe essere diverso, quindi facci sapere se lo provi.


2
Trovo il contrario, un enorme aumento di velocità quando dynamic_pager è disabilitato . Lo screenshot attualmente su apple.stackexchange.com/a/60661/8546 mostra la dimensione della memoria virtuale e gli ins di pagina misurati mentre quel demone è disabilitato (mentre i file di scambio non sono usati).
Graham Perrin,

Cosa viene misurato con precisione per determinare uno speedup? (O stai vedendo l'assenza di ritardi o ritardi nell'interfaccia utente o qualcos'altro che non è facilmente quantificabile o misurabile?)
bmike

Senza misurare: con Lion, la maggior parte delle cose sembrava notevolmente più veloce - abbastanza per me usare la parola enorme . Più recentemente: 10.8 in un VirtualBoxVM, ad esempio, per accedere e riprendere Activity Monitor richiede sedici secondi con dynamic_pager, dodici secondi senza. Per un confronto più ampio e più misurato potremmo usare Phoronix Test Suite o Geekbench .
Graham Perrin,

9

Sarò il presuntuoso qui: ho disabilitato lo scambio sul mio macbook pro unibody di fine 2008 e ha migliorato notevolmente le prestazioni: meno attesa, passaggio più veloce tra le applicazioni.

Intendiamoci, tengo d'occhio la mia memoria libera e ho installato 6 GB. Le poche volte che ho raggiunto il limite di memoria, il sistema si è bloccato: MrGreen

Sul mio nuovo MacBook Air non mi sognerei di disabilitare lo scambio, è già veloce con esso abilitato e ha solo 4 GB per cominciare.

Un'altra buona ragione per cui le persone disabilitano lo scambio su un SSD è perché ottengono piccoli SSD e hanno bisogno di tutto lo spazio che possono ottenere. In ogni caso, non farlo.


Fantastico avere una vera esperienza in cui ha funzionato. Qual è stato l'impegno della RAM sulla macchina quando lo swap è stato disabilitato? Che cosa è successo quando hai aperto più app di quelle che si inserivano nella RAM? Quanta RAM avevi e quali app avrebbero funzionato in quello spazio comodamente senza errori?
bmike

1
@bmike, non sono sicuro, il sistema si arresta in modo anomalo :-D, 6 GB e tutti quelli che uso :). Aperture o XCode sono veri e propri maiali della memoria e talvolta potrebbero ribaltare il sistema ma Skype, Mail, Adium, Safari, Chrome, iTunes e OmniFocus si adattano perfettamente ...
w00t,

6

La mia esperienza è simile a quella di w00t. Ho disabilitato il file di scambio su SL e Lion perché l'aumento delle prestazioni funziona per me. L'utilizzo cablato sfugge al controllo dopo circa una settimana, ma un semplice riavvio lo risolve. Non ho un SSD ma un disco 5400rpm lento. Le durate della vita degli SSD non sono poi così brutte come le persone cercano di farle capire. Se lo fai semplicemente perché hai paura di consumare il tuo SSD, consulta: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd / 2 e http://communities.intel.com/thread/21717?tstart=0 Intel valuta le proprie unità per oltre 20 GB al giorno, ogni giorno, fino a 5 anni su un'unità da 80 GB. Le unità di dimensioni maggiori dureranno ancora più a lungo. L'utente medio non usa nemmeno 10 GB / giorno.

Mi assicuro di monitorare il mio utilizzo della memoria da 4 GB con i menu iStat e di utilizzare uno script di Automator con il comando bash "elimina" (richiede l'installazione di Xcode) per cancellare la memoria inattiva e aprire frequentemente più memoria libera. Le poche volte che ho avuto app con perdite di memoria che consumano tutta la RAM, ho dovuto fare un hard reset. Le rare occasioni in cui ciò accade e l'accelerazione in generale rende utile mantenere il file di scambio disabilitato per me. Mi rendo conto che non posso avere tante app aperte contemporaneamente per questo, come affermato da altri, ma sono in grado di lavorare con quello.


Memory Scope ha un'opzione per eliminare automaticamente. (se dynamic_pager è abilitato, non autorizzo le eliminazioni.)
Graham Perrin,

5

Aggiungo solo i miei 2 centesimi per coloro che desiderano disabilitare lo scambio a causa di piccoli SSD: il sleepimage utilizza molto più spazio su disco.

E, per coloro che sono preoccupati per la durata limitata dell'SSD (in particolare quelli con MBA e chip SSD cablati che NON POSSONO essere sostituiti), se il computer dorme molte volte al giorno, la riscrittura del sleepimage potrebbe essere un problema. Il mio laptop dorme facilmente una mezza dozzina di volte al giorno. Questo scrive 48 GB di dati sul mio SSD ogni giorno.

La soluzione in ogni caso è disabilitare l'ibernazione, quindi eliminare il file sleepimage grande quanto la RAM installata (8 GB nel mio caso).

Il rischio di svantaggio: se la batteria si scarica mentre il laptop è in pausa, lo stato corrente andrà perso. Ciò equivarrà a un riavvio forzato forzato. Nessun danno fisico al laptop, solo una perdita di produttività. Se disabiliti l'ibernazione, scarica la batteria e non riesci a caricarla, tieni il codice a portata di mano per abilitare l'ibernazione!

Per disabilitare l'ibernazione, nel Terminale, il comando è il seguente:

 sudo pmset -a hibernatemode 0

Per abilitare l'ibernazione, il comando è il seguente:

 sudo pmset -a hibernatemode 3

Per eliminare l'ultimo sleepimage per liberare spazio su SSD / HDD (ha senso solo se si spegne l'ibernazione, altrimenti uno nuovo occuperà quello spazio la prossima volta che la computer in pausa):

 sudo rm -rf /var/vm/sleepimage

Fonte: man pmset


3

La disattivazione di swap fa aumentare le prestazioni. Ad esempio, utilizzo regolarmente Aperture e quando lo swap aumenta le prestazioni peggiorano e quando va oltre 1Gb devo riavviare il sistema operativo per pulirlo e ripristinare le prestazioni. Nota: la macchina ha 6 GB di RAM e NON tutta occupata, circa 3 GB sono gratuiti, ma 1G di swap riduce significativamente le prestazioni.


3

Ho disabilitato lo scambio su macchine per molti anni, sia su OS X che su altre varianti UNIX.

Uso uno strumento per avvisarmi quando la memoria si sta esaurendo e non mi preoccupo mai del crash del mio sistema.

Il mio iMac ha 12 GB e con lo swap disabilitato ho quasi sempre 4 GB gratuiti, anche con più strumenti di sviluppo, app, browser ecc. Aperti


5
Quale strumento di memoria stai usando?
Dmitriy,

1

Lo schema ripetuto qui è questo:

Coloro che hanno disabilitato il file di scambio hanno registrato prestazioni migliori (con RAM fisica sufficiente)

Coloro che NON hanno disabilitato lo spazio di scambio sono certi che non funzionerà e accadrà qualcosa di terribile, e stanno ardentemente avvisando che non lo farai.

Ciò è dovuto semplicemente a due cose:

  1. Idee obsolete sulla scarsità e sul costo elevato della RAM fisica che non sono più valide
  2. Un meccanismo di scambio davvero scarso in MacOS che causa l'uso di file di scambio quando c'è sufficiente RAM fisica.

1
Se lo spazio di swap fosse utilizzato SOLO quando necessario, sarebbe fantastico. Tuttavia, non è così. Eseguo macchine virtuali da 2 GB e 4 GB sul mio MacOS. Se ho 1,6 GB di RAM libera, dovrei essere in grado di eseguire una macchina virtuale da 1 GB (o un altro programma), ma non posso perché il sistema operativo inizia a cercarlo. Di conseguenza, posso usare solo circa l'85-90% della mia RAM. Se voglio accedere a TUTTA la mia RAM, devo disabilitare il paging. Lo faccio su tutti i miei computer Windows e vorrei fare lo stesso sul mio MacOS. Se un programma esaurisce la RAM, allora fallirà. Questo è quello che voglio succedere. Non voglio altre applicazioni in esecuzione

3
YMMV. Non disabilito più lo scambio poiché non l'ho trovato per migliorare le prestazioni su macchine moderne caricate con RAM. In passato, mi aiutava a tornare ai brutti vecchi tempi. Al giorno d'oggi non solo non vedo alcun cambiamento nelle prestazioni disabilitando lo swap, ma vedo una maggiore instabilità dell'applicazione.
Brian Knoblauch,

1
La cosa indesiderabile che sarà accadere è che un essere umano si dimentica che non possono lanciare un altro programma e nel tempo, la macchina andrà in crash a causa di un errore di memoria insufficiente. Se questo è terribile, divertente, educativo dipende dai tempi, dalla frequenza di backup e dalla tolleranza per i ritardi.
bmike

1

Solo un'esperienza personale.

Memory Amount    |
 4 GB            | Don't disable it, Mountain Lion itself boots with about 1 GB.
 8 GB            | Do if you don't run apps that requires more than 1 GB of memory, in short, virtualization software, Photoshop, and stuff.
16 GB or more    | Do it! Even Xcode or Final Cut won't use more than 4 GB of memory, at least as I've seen. Just don't run too many virtual machines though.

Una breve nota: se il tuo Mac utilizza grafica integrata, la sua memoria è condivisa con la memoria principale con kernel_task. Pertanto, dovrai sottrarre tale importo dal totale utilizzabile.

Utenti SSD, è soddisfacente avere più spazio, ma è importante sapere che la memoria virtuale prospera su SSD, da cui è possibile ottenere moltissime prestazioni. Fa male all'SSD? Sì, ma sostituirai a lungo il tuo Mac prima di accorgertene.


1
Ho disabilitato personalmente la memoria virtuale sul mio MacBook Pro Retina con solo 8 GB di memoria. Ecco la matematica, il sistema utilizza circa 2 GB di memoria conteggio della grafica integrata. Quindi per me sono 6 GB. Faccio Xcode per lavoro, a quel non consuma più di 2 GB di memoria. Quindi ho molto da risparmiare.
Shane Hsu,

1

Sintesi

Un'area di scambio (chiamata partizione di scambio, file di scambio o file di paging) è solo un meccanismo per aumentare la memoria fisica indirizzabile dal sistema operativo.

Se hai poca RAM fisica disponibile e sulla macchina di oggi, direi se hai 4 GB o meno di RAM. Quindi probabilmente dovresti avere uno scambio. Ma questo dipende dal carico di lavoro e da come si utilizza la macchina.

Se hai più di 4 GB di RAM, è probabile che il tuo sistema non possa mai usare lo swap. Quindi, se lo scambio è abilitato o meno, questo non cambierà molto.
Sebbene ciò dipenda da altri fattori, più a lungo il computer funzionerà, più è probabile che il sistema operativo cambierà una piccola porzione inutilizzata della RAM con lo scambio, sebbene apparentemente rimanga un sacco di spazio. Tuttavia, spesso il sistema utilizza la RAM "libera" per i buffer di file e altre cose e alcuni carichi di lavoro potrebbero fare in modo che il buffer dei file utilizzi tutta la RAM disponibile.

Informazioni di base

In qualche modo cosa accadrebbe se disabilitassi lo swap e la tua memoria fosse completamente utilizzata? Bene, la prossima volta che un'applicazione richiede più memoria (come con un malloc o realloc), riceverà un errore! Se è correttamente codificato, l'applicazione lo rileverà, ma gestire un tale errore e terminare il programma con grazia potrebbe essere ancora una sfida! Tuttavia, molti sviluppatori non verificano la corretta allocazione della memoria e spesso l'applicazione si arresta in modo anomalo non appena viene utilizzata questa memoria non allocata. Quindi c'è una forte possibilità che l'applicazione si arresti in modo anomalo e che in realtà molte applicazioni si arrestino in modo anomalo perché in genere hai più di un'applicazione in esecuzione contemporaneamente. Eventualmente, il kernel stesso dovrebbe essere immune, ma nella mia esperienza non è stato sempre così.

Se hai uno scambio, avrai lo stesso comportamento , ma hai un limite più alto, quindi è probabile che non raggiungerai quel limite.

Ho personalmente 2 macchine con 8 e 16 GB di RAM. Il mio uso personale di questa macchina non dovrebbe mai avvicinarmi all'uso di tutta questa RAM (oggi! Forse tra qualche anno potrebbe essere diverso). L'unico motivo per cui dovrei raggiungere i limiti fisici della RAM è che un processo è diventato illegale e sta consumando tutta la RAM. Non avere swap è un sollievo, il kernel interromperà prontamente il processo non autorizzato quando raggiungerà il limite di RAM. Se hai uno scambio, otterrai un'esperienza dolorosa (forse non su SSD ...) poiché il tuo sistema cambierà e cambierà e cambierà e a volte non risponderà completamente fino a quando speriamo che il tuo kernel uccida il colpevole!

consiglia

Non dovresti avere paura delle persone che ti dicono che qualcosa di orribilmente sbagliato potrebbe accadere se rimuovi lo swap. In tal caso, lo spazio degli indirizzi fisici verrà ridotto, proprio come se passassi da 4 GB di RAM a 2 GB. Faresti una cosa del genere? Quindi non rimuovere lo swap. Puoi comunque decidere di limitarlo, e sarebbe saggio .

Se uno pensa che il suo carico di lavoro possa portarlo ad usare vicino o più della RAM fisica disponibile, o se ha bisogno di un sacco di I / O (lettura / scrittura su dischi), allora lo scambio dovrebbe essere mantenuto.

Quando lo swap deve essere mantenuto, un utente dovrebbe provare a impostare limiti alla quantità di memoria che un processo può usare. Su un sistema Linux, si potrebbero usare i limiti di memoria di cgroups per evitare che alcuni processi sfuggano al controllo, non conosco l'equivalente su OS X ma dovrebbe essere così.

Tuttavia, se si dispone di una memoria disponibile più che sufficiente per il proprio carico di lavoro, è possibile disabilitare in modo sicuro lo swap o mantenerlo. Non cambierà molto anche in termini di prestazioni perché se il sistema non utilizza lo swap, allora non verrai colpito da un calo delle prestazioni (specialmente visibile su un vecchio disco rigido rotazionale, meno su SSD).

Utilizzare lo stesso trucco di cui sopra per provare a impostare i limiti di memoria per processo o gruppo di processi è anche vantaggioso nel caso di RAM disponibile più che sufficiente.

Il mio esempio

Ho un vecchio PC con 1 GB di RAM, lì ho un grande scambio: 4 GB in modo da poter eseguire Firefox e altre applicazioni su di esso. Tendo a utilizzare il minor numero di applicazioni (o schede in Firefox) possibile per avere un'esperienza utente corretta.

Ho un piccolo server con 8 GB di RAM. Lì conosco esattamente il mio carico di lavoro e non voglio che il mio server rallenti perché un processo è fallito e sta consumando tutta la memoria. Lì non ho limiti di memoria swap e cgroup che impongano una barriera, quindi applicazioni o servizi possono andare in crash ma non il kernel. A proposito, questa è una macchina Linux.

Quindi, ho il mio Mac con 16 GB di RAM. Non ne sono l'unico utente e non ci dispiacerebbe aspettare quando si cambia utente. Lì abbiamo lo scambio, è difficile per me pianificare il carico di lavoro di altri utenti di questo computer. Anche se sarei l'unico ad usare lo swap. Spesso eseguo diverse macchine virtuali e utilizzo applicazioni che consumano memoria, ma non tutte allo stesso tempo, quindi non mi dispiacerebbe scambiare il sistema operativo in un'app inutilizzata in modo da poter ottenere l'I / O su disco più veloce o avviare un'altra VM. Fino ad ora, non ho visto scambiare questa macchina!


0

Ho appena disabilitato il file di scambio sul mio Macbook air 2011 (4 GB RAM, 128 GB SSD) perché ero stufo del file di scambio che lentamente consumava tutto il mio spazio HD rimanente e quindi ho dovuto riavviare. In questo modo, l'idea è che eseguirò solo meno programmi.

Vedrò se funziona davvero o se dovrò riavviare comunque per cancellare la memoria "Wired", ma per ora sembra funzionare bene. Una volta che la memoria si è riempita davvero, il computer ha rallentato esattamente come quando il mio SSD esaurisce la memoria, ma si è ripristinato molto più velocemente non appena ho chiuso le applicazioni. (E sono stato effettivamente in grado di chiudere le applicazioni, cosa che di solito non succede quando l'SSD si riempie).

Vedrò come va la stabilità, ma finora sono un campeggiatore felice. Mi costringe anche a eseguire un minor numero di applicazioni (e schede Chrome) alla volta, il che è buono per il focus dell'attività.


0

Il motivo principale per disabilitare il file di scambio non è la velocità, ma lo spazio su disco.

Se uno è un utente che esegue abitualmente entro 5 GB di un'unità completa, la disabilitazione dello scambio interromperà il costante fastidio dello spazio disponibile; Di solito finisco con un file di scambio di 4+ GB dalla normale navigazione.

Il miglioramento della velocità è sorprendente sulle macchine più vecchie; non è così impressionante su macchine moderne equipaggiate con SSD. (In OSX 10.0 su un iMac, l'utilizzo della memoria virtuale ha dimezzato la velocità di molte operazioni, inclusa la copia di file tra unità).


Sembra più come riparare il clacson perché i freni non funzionano. Se l'unità è troppo piena, rimuovere alcuni dei dati.
Tetsujin,

@Tetsujin Il singolo file più grande su quell'unità era il file di scambio.
Aramis,

il mio punto è ancora valido. Meno dati, disco più grande o più RAM e non dovresti.
Tetsujin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.