Vraag Hoe configureer ik swappiness?


Ik heb een stapsgewijze, eenvoudige en gemakkelijke manier nodig om swappiness te configureren.


298
2018-02-13 18:31


oorsprong


Oneliner sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf" - redanimalwar
@redanimalwar moet je ook uitvoeren sudo sysctl -p om de nieuwe swappiness-waarde van het sysctl.conf-bestand te laden, anders is de wijziging alleen van toepassing bij de volgende reboot. - waldyrious


antwoorden:


De Linux-kernel biedt een aanpasbare instelling die bepaalt hoe vaak het wisselbestand wordt gebruikt, genaamd swappiness.

Een swappiness-instelling van nul betekent dat de schijf zal worden vermeden, tenzij absoluut noodzakelijk (u hebt onvoldoende geheugen), terwijl een swappiness-instelling van 100 betekent dat programma's vrijwel direct naar schijf worden geruild.

Ubuntu-systeem wordt geleverd met een standaardwaarde van 60, wat betekent dat het wisselbestand vrij vaak zal worden gebruikt als het geheugengebruik ongeveer de helft van mijn RAM-geheugen is. U kunt de swappiness-waarde van uw eigen systeem controleren door het volgende uit te voeren:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

Aangezien ik 4 GB RAM heb, zou ik dat willen verlagen naar 10 of 15. Het wisselbestand zal dan alleen worden gebruikt als mijn RAM-gebruik in de buurt is 80 of 90 procent. Om de swappiness-waarde van het systeem te wijzigen, opent u /etc/sysctl.conf als wortel. Verander of voeg vervolgens deze regel toe aan het bestand:

vm.swappiness = 10

Start opnieuw op voordat de wijziging van kracht wordt.

Je kunt ook de waarde wijzigen terwijl je systeem nog draait:

sysctl vm.swappiness=10

Je kunt je swap ook wissen door te draaien swapoff -a en dan swapon -a als root in plaats van rebooten om hetzelfde effect te bereiken.

Om uw swapformule te berekenen:

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

dus totaal is 3950/100 = 39,5 * 10 = 395

Dus wat het betekent is dat wanneer 10% (395 MB) ram is over, dan zal het gebruik van swap beginnen.


Helpen . Ubuntu. ruil

Wat is zwoegen

De swappiness-parameter bepaalt de neiging van de kernel om processen uit het fysieke geheugen en naar de verwisselbare schijf te verplaatsen. Omdat schijven veel langzamer zijn dan RAM, kan dit leiden tot tragere reactietijden voor systeem en toepassingen als processen te agressief uit het geheugen worden verplaatst.

  • swappiness kan een waarde tussen 0 en 100 hebben.
  • swappiness=0:
    • Kernelversie 3.5 en nieuwer: schakelt swapiness uit.
    • Kernelversie ouder dan 3.5: vermijdt het zo lang mogelijk uitwisselen van processen uit het fysieke geheugen.
  • swappiness=1:
    • Kernelversie 3.5 en hoger: minimale swappiness zonder deze volledig uit te schakelen.
  • swappiness=100:
    • Vertelt de kernel om processen agressief uit het fysieke geheugen te wisselen en ze naar cachegeheugen te verplaatsen.

Zien http://en.wikipedia.org/wiki/Swappiness.

De standaardinstelling in Ubuntu is swappiness=60. Het verlagen van de standaardwaarde van swappiness zal waarschijnlijk de algehele prestaties voor een typische Ubuntu-desktopinstallatie verbeteren. Een waarde van swappiness=10 wordt aanbevolen, maar voel je vrij om te experimenteren.


Voorbeeld

Gestart met swap op 91%:

enter image description here Zoals ik mijn systeem heb geconfigureerd & vm om gebruik te maken van RAM op 90%, op 90% er was geen uitwisseling.

Daarna opende ik een aantal applicaties zoals Firefox & Shutter, en het begon te swappen omdat het RAM-gebruik hoger is 90%.


453
2018-02-13 18:33



Met een swappiness van 100 worden programma's niet meteen uitgewisseld en wordt een waarde van 60 of 90 mean swap niet gebruikt als de ram 60 of 90% vol is. Het is een voorkeurverhouding voor het stelen van pagina's uit cache versus het uitwisselen van dingen om wat geheugen vrij te maken wanneer er niet genoeg is. Een lage waarde geeft sterk de voorkeur aan het stelen van pagina's uit de cache, en een hoge waarde geeft er sterk de voorkeur aan om pagina's uit te wisselen. De instelling heeft alleen effect als het geheugen (bijna) allemaal wordt gebruikt en de kernel moet kiezen hoe iets vrij te maken. - psusi
Je moet er op wijzen dat de RAM die NIET wordt gebruikt door het uitvoeren van programma's wordt gebruikt als schijfcache ... dus door het verminderen van de swappiness vergroot je de kans dat een programma niet wordt uitgewisseld, maar tegelijkertijd de grootte verkleint van schijfcache, waardoor schijftoegang langzamer kan worden. Dus de effecten van deze instelling op de daadwerkelijke uitvoering zijn niet zo eenvoudig ... je mag natuurlijk wel experimenteren, maar ik vermoed dat de standaardinstellingen worden ingesteld door mensen die genoeg begrijpen in het onderwerp :) - Sergey
@Sergey en de ironie ervan is dat mensen met een kleine RAM de meeste kans hebben om elke truc uit te proberen die ze tegen kunnen komen om de prestaties te verbeteren en zullen eerder de mensen zijn voor wie 60 of zelfs hoger het beste cijfer zou zijn. Degenen onder ons die het op 10 stellen, omdat we tonnen RAM niet zoveel verdienen als ze zullen verliezen als ze dat doen. - Jon Hanna
@Freedom_Ben: Zie linuxatemyram.com :) - Sergey
Gewoon een soortgelijke discussie achterlaten - unix.stackexchange.com/questions/88693/... - Elijah Lynn