qui a Ubunlog Ci dedichiamo - o proviamo a dedicarci - a tutti gli utenti, e questo include configurazioni hardware molto diverse. E in qualche modo ci piace pensare che con i tutorial che mostriamo qui contribuiamo in qualche modo a migliorare l'esperienza generale dell'utente in questa distribuzione che ci piace così tanto (in ogni sua versione), motivo per cui pubblichiamo spesso guide per ottenere le migliori prestazioni possibile, soprattutto in attrezzature più modeste.
Ora, senza andare oltre, mostreremo come regolare l'utilizzo della memoria virtuale in Ubuntu, in modo tale da evitare che alla fine finisca per diventare un freno e peggiorare le prestazioni di quanto sarebbe senza. Ed è che sebbene l'idea di utilizzare un file o una partizione di swap non sia male di per sé ma al contrario, se non è ben implementata può generare un uso eccessivo del disco rigido, molto più lento del RAM.
Pertanto, l'uso della partizione di swap dovrebbe essere limitato a situazioni in cui non c'è alternativa se non usarla, momento in cui supporterà la memoria principale (che è RAM). Se invece lo usiamo sempre, a volte anche prima della RAM, le nostre prestazioni ne risulteranno penalizzate. Allora vediamo come regolare l'utilizzo della memoria virtuale in Linux utilizzando il comando Swappiness.
Nel nostro sistema operativo, la creazione della memoria virtuale viene solitamente eseguita durante il processo di installazione, momento in cui definiamo la partizione root (/), la partizione di archiviazione (/ home) e la partizione di scambio o swap, che di solito è implementato nella partizione / dev / sda5. Il parametro del kernel che gestisce l'uso della memoria virtuale è il già citato swappiness, e in sostanza possiamo dire che è incaricato di definire quanto spesso accediamo alla partizione di swap e quanto contenuto ci copiamo, attraverso un argomento che varia tra 0 e 100.
Il valore predefinito in un'installazione Linux è 60, ma come è facile supporre, non tutte le configurazioni hardware sono uguali e quindi non ha senso mantenere quel livello indipendentemente da quale sia il nostro. Questo valore è memorizzato nel file / proc / sys / vm / swappiness e possiamo verificarlo:
cat / proc / sys / vm / swappiness
Quasi sicuramente sarà a 60, e se è così potremmo doverlo modificare, soprattutto se abbiamo più di 4 GB di memoria RAM, poiché in quel caso di solito abbiamo bisogno di poca o nessuna memoria virtuale. Ma prima di spiegare come modificarlo, vediamo un po 'la logica alla base di tutta questa faccenda della memoria virtuale e dello swapping; Ed è che quando viene lasciato per impostazione predefinita a 60, ciò che viene detto al kernel è di andare e utilizzare la memoria virtuale quando la nostra RAM ha il 40 percento o meno della sua capacità libera. Quindi, se impostiamo lo swappiness uguale a 100 la memoria virtuale sarà sempre utilizzatae se lo lasciamo a un valore molto basso, verrà utilizzato solo quando la nostra RAM sta per esaurirsi. Il minimo possibile è 1, poiché lasciando il valore uguale a 0 si disattiva completamente la memoria virtuale.
Quindi quello che dobbiamo fare è inserire il seguente comando dal terminale (Ctrl + Alt + T):
sudo sysctl vm.swappiness = 10
Ora il valore di lo swappiness rimarrà a 10, quindi la memoria virtuale verrà utilizzata a malapena. Una volta modificato questo valore non è necessario riavviare il computer ma ha effetto immediato, e infatti se azzeriamo il valore verrà posizionato a 60 come prima, perché ciò di cui avremo bisogno è lasciare questa modifica stabilita in modo permanente. Per fare ciò, una volta che abbiamo utilizzato il nostro computer e verificato che tutto va bene con il nuovo valore di swappiness, eseguiamo:
sudo nano /etc/sysctl.conf
dopodiché cerchiamo il testo vm.swappiness = e aggiungiamo il valore desiderato dopo il simbolo "=". Salviamo il file e ora sì, la modifica sarà permanente.
Ottima spiegazione !!! Ottimo articolo !! Nel mio caso, quando apporto questa modifica al riavvio del notebook, ritorna al valore originale di 60, è come se il file fosse salvato ma al riavvio è «formattato». Ho già provato di tutto senza successo, hai idea di cosa potrebbe succedere? Ho 1 GB di RAM.
Grazie !!
Ciao César, sono contento che tu l'abbia trovato interessante.
Se il valore viene perso al riavvio del sistema, guarderei /etc/rc.local e gli altri script di avvio (variano a seconda di ciascuna distribuzione) poiché potrebbero essere impostati all'avvio.
Saluti!
Ottima spiegazione!
Come complemento, eccone un altro interessante su Swap e swappiness in Linux:
http://www.sysadmit.com/2016/10/linux-swap-y-swappiness.html
non sai quanto è bello per me, grazie
Saluti,
Nel mio /etc/sysctl.conf non c'è il testo vm.swappiness =, l'ho cercato bene, il file è piccolo. A meno che non sia necessario aggiungerlo, l'articolo dice di trovare e modificare il valore, non di aggiungere la riga.
Saluti,
Nel mio /etc/sysctl.conf non c'è vm.swappiness = text. A meno che non sia necessario aggiungerlo, l'articolo dice di trovare e modificare il valore, non di aggiungere la riga.
Devi crearlo, alla fine del file metti vm.swappiness = 10 e il gioco è fatto.
Se non salva al riavvio, potrebbe essere perché non usi il comando sudo.
Ubuntu: sudo gedit /etc/sysctl.conf
Xubuntu: sudo mousepad /etc/sysctl.conf
Ottimo articolo. Grazie!
Puoi mettere zero. quali problemi possono sorgere?
Ciao e grazie Willy Clew per il tuo articolo che mi chiarisce il processo per utilizzare la memoria di swapp, ma mi ha causato un enorme dubbio perché entrando nel terminale ed eseguendo i comandi che indichi, restituisce il messaggio che dice:
bash: cat / proc / sys / vm / swappiness: il file o la directory non esiste
Cosa può essere causato?
Hai scritto male. Non hai messo lo spazio dopo "gatto".
fantastico, lo condividiamo nel gruppo Ubuntu in spagnolo https://t.me/ubuntu_es
Eccellente, ha funzionato per me su Debian 10.9
Sono un informatico, ho installato e testato diverse distro, l'opzione migliore per configurare lo swappiness è scrivere nel terminale
sudo nano /etc/sysctl.conf
dopo aver premuto invio scrivi il tasto e inserisci di nuovo, quindi scrivi alla fine la riga seguente
vm.swappiness = 0
quindi premi ctrl e il tasto x contemporaneamente, genera una domanda che se vuoi salvare la nuova frase nel file quindi premi il tasto Y per dire sì e n in modo che non la salvi
Perché ho scritto zero 0? I test sono già stati fatti su diversi PC che ho programmato perché è l'opzione migliore poiché utilizza la cui paginazione ma ad esempio se si apre chromium o un browser aprendo Facebook perché la memoria di scambio (swap o anche chiamata paginazione) aumenterà ma quando viene chiusa la sessione e il browser o qualsiasi programma poiché la memoria di paging (swap) diminuirà liberando l'hard disk che è utile per evitare di danneggiarlo, ricordate che la memoria di swap o chiamata paging (swap) utilizza l'hard disk.
Non ho capito, scusa. Se il valore predefinito è 60 affinché lo swap venga attivato con 40 o meno mancanti, quando si imposta il parametro a 10. Non sarebbe attivato con 90 della ram libera? Rallentando lo scambio di dati