Swappiness: come regolare l'utilizzo della memoria virtuale

memoria virtuale swappiness

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.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   ceflo suddetto

    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 !!

    1.    Willy klew suddetto

      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!

  2.   Pascual Martin suddetto

    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

  3.   condizione del visualizzatore suddetto

    non sai quanto è bello per me, grazie

  4.   clero suddetto

    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.

  5.   Lewis suddetto

    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.

  6.   Nosferato suddetto

    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

  7.   santiago suddetto

    Ottimo articolo. Grazie!

  8.   Roberto suddetto

    Puoi mettere zero. quali problemi possono sorgere?

  9.   Jose Castillo Ávalos suddetto

    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?

    1.    Andres Choque Lopez suddetto

      Hai scritto male. Non hai messo lo spazio dopo "gatto".

  10.   modifica del ghiaccio suddetto

    fantastico, lo condividiamo nel gruppo Ubuntu in spagnolo https://t.me/ubuntu_es

  11.   fabbro suddetto

    Eccellente, ha funzionato per me su Debian 10.9

  12.   Giovanni suddetto

    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.

  13.   Norberto gonzalez suddetto

    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