Swappiness: com ajustar l'ús de la memòria virtual

memòria virtual swappiness

aquí a Ubunlog ens dediquem -o intentem fer-ho- a tots els usuaris, i això inclou configuracions molt diferents de maquinari. I d'alguna manera ens agrada pensar que amb els tutorials que mostrem aquí contribuïm d'alguna manera a millorar l'experiència general d'ús en aquesta distro que tant ens agrada (en qualsevol dels seus sabors), per això moltes vegades publiquem guies per a obtenir el millor rendiment possible, sobretot en equips més modestos.

Ara, sense anar més lluny, anem a mostrar com ajustar l'ús de la memòria virtual en Ubuntu, De manera tal d'evitar que a la fi s'acabi convertint en un llast i fent que el rendiment sigui pitjor del que seria sense ella. I és que encara que la idea d'utilitzar un arxiu o partició d'intercanvi no és dolenta en si mateixa sinó tot el contrari, si no està ben implementada pot generar un excessiu ús del disc dur, molt més lent que la memòria RAM.

Per això, l'ús de la partició swap ha de limitar-se a situacions en les quals no queda una altra alternativa més que utilitzar-la, moments en els quals servirà de suport a la memòria principal (que és la RAM). Si en lloc d'això la utilitzem en tot moment, fins i tot a vegades abans que la memòria RAM, el nostre rendiment es veurà penalitzat. Vegem llavors com ajustar l'ús de la memòria virtual en Linux mitjançant la comanda Swappiness.

En el nostre sistema operatiu la creació de la memòria virtual se sol realitzar durant el procés d'instal·lació, moment en el qual definim la partició arrel (/), la d'emmagatzematge (/ home) i la d'intercanvi o swap, que sol quedar implantada a la partició / dev / sda5. El paràmetre de l'nucli que gestiona l'ús de la memòria virtual és l'anteriorment esmentat swappiness, i bàsicament podem dir que s'encarrega de definir que tan seguit accedim a la partició d'intercanvi i que tant contingut copiem en ella, mitjançant un argument que varia entre 0 i 100.

El valor per defecte en una instal·lació de Linux és de 60, Però com és fàcil suposar no totes les configuracions de maquinari són iguals i per això tampoc té sentit mantenir aquest nivell sense importar com és la nostra. Aquest valor és emmagatzemat a l'arxiu / proc / sys / vm / swappiness, i podem comprovar-ho mitjançant:

cat / proc / sys / vm / swappiness

Gairebé segur estarà en 60, i si aquest és el cas pot ser que haguem de modificar-lo, sobretot si tenim més de 4 GB de memòria RAM ja que en aquest cas l'habitual serà que necessitem poc i gens de la memòria virtual. Però abans d'explicar com modificar això vegem una mica com és la lògica darrere de tot aquest assumpte de la memòria virtual i la swappiness; i és que quan l'hi deixa per defecte en 60 el que se li diu a el nucli és que vagi i faci servir la memòria virtual quan la nostra memòria RAM tingui el 40 per cent o menys de la seva capacitat lliure. Per tant, si establim swappiness igual a 100 la memòria virtual s'utilitzarà tot el temps, I si la deixem en un valor molt baix s'utilitzarà únicament quan la nostra memòria RAM estigui a punt d'esgotar. El mínim possible és d'1, ja que deixant el valor igual a 0 desactivem la memòria virtua completament.

Llavors, el que hem de fer és ingressar la següent comanda des de la terminal (Ctrl + Alt + T):

suo sysctl vm.swappiness = 10

Ara el valor de swappiness quedarà en 10, i llavors la memòria virtual tot just s'utilitzarà. Un cop canviat aquest valor no cal reiniciar l'equip sinó que fa efecte immediatament, I de fet si reiniciem el valor tornarà a estar ubicat en 60 com abans, perquè el que necessitarem és deixar aquest canvi establert en forma permanent. Per a això, una vegada que hem utilitzat el nostre ordinador i comprovat que tot marxa bé amb el nou valor de swappiness, executem:

suo nano /etc/sysctl.conf

després d'això busquem el text vm.swappiness = i afegim el valor desitjat després de l'símbol «=». Guardem l'arxiu i ara si, el canvi serà permanent.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   cesflo va dir

    Excel·lent explicació !!! Molt bon article !! En el meu cas quan realitzo aquest canvi a l'reiniciar la notebook torna a la valor original de 60, és com que l'arxiu es guarda però a l'reiniciar es «formata». Ja intenti de tot sense èxit, tenes idea que pot estar passant? Tinc 1GB de Ram.

    Gràcies!

    1.    Willy Klew va dir

      Hola César, m'alegra que t'hagi semblat interessant.

      Si el valor es perd a l'reiniciar el sistema jo miraria en /etc/rc.local i els altres scripts d'inici (varien d'acord a cada distro) ja que pot ser que això s'estableixi a l'inici.

      Salutacions!

  2.   Pascual Martín va dir

    Molt bona explicació!

    Com a complement, aquí una altra d'interessant sobre Swap i swappiness en Linux:

    http://www.sysadmit.com/2016/10/linux-swap-y-swappiness.html

  3.   lacondiciond'espectador va dir

    no saps el bé que em ve això gràcies

  4.   clerig va dir

    Salutacions,

    En la meva /etc/sysctl.conf no està el text vm.swappiness =, el vaig buscar bé, l'arxiu és petit. A menys que hagi de afegir, l'article diu que busqui i modifiqui el valor, no afegiu la línia.

  5.   Lewis va dir

    Salutacions,

    En la meva /etc/sysctl.conf no està el text vm.swappiness =. A menys que hagi de afegir, l'article diu que busqui i modifiqui el valor, no afegiu la línia.

  6.   Nosferatus va dir

    Has crear-lo, a la fi de el fitxer poses vm.swappiness = 10 i llest.

    Si no es guarda a l'reiniciar podria ser perquè no fas servir l'ordre sudo.

    Ubuntu: sudo gedit /etc/sysctl.conf
    Xubuntu: sudo Mousepad /etc/sysctl.conf

  7.   santiago va dir

    Excel·lent article. Graciass!

  8.   Roberto va dir

    Es pot posar zero. que problemes poden aparèixer?

  9.   José Castillo Ávalos va dir

    Hola i gràcies Willy Clew pel teu article que em deixa clar el procés per a usar la memòria swapp, però em va produir una enorme dubte perquè a l'entrar a l'terminal i executar les ordres que indiques em retorna el missatge que diu:

    bash: cat / proc / sys / vm / swappiness: No existeix el fitxer o directori

    A què pot ser degut això?

    1.    Andrés Xoc Lopez va dir

      El vas escriure malament. No vas posar l'espai després de «cat».

  10.   icemodding va dir

    genial, el compartim en el grup d'ubuntu en espanyol https://t.me/ubuntu_es

  11.   Herrero va dir

    Excel·lent em funciono a Debian 10.9

  12.   Joan va dir

    sóc informàtic he instal·lat i provat diverses distros, la millor opció de configurar l'swappiness és escriure a la terminal

    suo nano /etc/sysctl.conf

    després de pressionar enter escriure la clau i enter de nou, escriure llavors a la fin la següent línia

    vm.swappiness = 0

    després pressionar ctrl i la tecla xa alhora, el genera una pregunta que si voleu desar la nova sentència en el fitxer llavors pressionar la tecla I per dir-li que si i n perquè no el guardi

    ¿Per que vaig escriure zero 0? Fetes ja les proves en diferents pcs que he programat ja que aquesta és la millor opció ja que fa servir la paginació però per exemple si s'obre chromium o algun navegador obrint facebook ja que la memòria d'intercanvi (swap o crida també paginació) augmentés però quan es tanca sessió i el navegador o qualsevol programa ja que la memòria de paginació (swap) disminuirà alliberant de el disc dur la qual és útil per evitar danyar-lo recordem que la memòria d'intercanvi o trucada paginació (swap) utilitza el disc dur.

  13.   Norberto Gonzalez va dir

    No entesa, disculpes. Si per defecte es troba al 60 perquè swap s'activi faltant 40 o menys, a l'posar el paràmetre a 10. No s'activaria amb el 90 de la ram lliure? Fent més lent l'intercanvi de dades