Swappiness: Fortæl kernen hvor agressivt den skal bruge swap

Har du en guide til en funktion eller et program? Har du tips og trick, som du gerne vil dele med andre? Post dem her.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Swappiness: Fortæl kernen hvor agressivt den skal bruge swap

Indlæg af lath »

Swapiness er en funktionalitet i Linux kernens memory manager du kan styre.
Swapiness er hvor agressivt at kernen skal swappe ting ud til disk.
Gør du kernen mere agressiv i swappiness, så vil der være mere fri RAM der straks er klar til brug, og computeren vil derfor virke som den er hurtigere.
Gør du derimod kernen mindre agressiv i swappiness vil den mere være tøvende over for at lægge noget ud i swap.

Du styrer swappinees med sysctl kommandoen, eller bruge ved at echo kommandoen på en "fil" i procfs.
Procfs er kernens interface til verden via filer og mapper - her kan du justere en kerne variabel ved at skrive til en fil, og du kan læse en kerne variabel ved at læse fra en fil.

Hvis du vil brug sysctl:
Det et parameteren vm.swapiness=<tal>, hvor tal skal være imellem 0 og 100.
Den ser således ud med tallet 60, der det som en desktop maskine bruger som standard:

Kode: Vælg alt

sudo -w sysctl vm.swappiness=60

Ændringen træder omgående i kraft.

Hvis du vil bruge procfs filsystemet
Med proc filen gøres det således, det kan også bruges i egne scripts og programmer, hvor man bare åbner filen for skrivning og skriver tallet:

Kode: Vælg alt

sudo echo 60 > /proc/sys/vm/swappiness


De tal du kan bruge skal være fra 0 (nul) til 100 - begge inklusive.
  • wm.swappiness=100 finder alle inaktive pages (1 page-= 1blok RAM på 4 KB på 32-bit maskiner, og 8 KB på 64-bit maskiner) og smider dem i swap på harddisken, eller hvad du nu bruger af lagermedie.
  • Er tallet mindre en 100 vil den være mindre tilbøjelig at smide en page i swap.
  • 60 er som sagt tallet en desktop har som standard (det er standard-værdien for kernen), prøv at skrue den op eller ned.
  • wm.swappiness=0 får kernen til kun at undgå en OOM (Out-Of-Memory situation), dvs at med 0 (nul) prøver kernen at holde alt i RAM, såvidt det overhovedet er muligt

Du kan se din maskines swappiness med:

Kode: Vælg alt

sysctl vm.swappiness

eller med:

Kode: Vælg alt

cat /proc/sys/vm/swappiness


Mere om swappiness:

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
kent a
Indlæg: 698
Tilmeldt: 31. dec 2009, 10:07
Geografisk sted: Erslev på Mors

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af kent a »

Nu vil jeg spørge som alm Ubuntu bruger.

Jeg er den type der aldrig har ret meget til at ligge på harddisken. vel 4-5GB ud af de 160GB jeg har.
Så tænker jeg at den bare skal stilles til så højt som mulig.

Men hvad er bagsiden af medaljen.
Lubuntu 18.04 LTS
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af lath »

kent a skrev:Nu vil jeg spørge som alm Ubuntu bruger.

Jeg er den type der aldrig har ret meget til at ligge på harddisken. vel 4-5GB ud af de 160GB jeg har.
Så tænker jeg at den bare skal stilles til så højt som mulig.

Men hvad er bagsiden af medaljen.

No pun intended, men jeg kan desværre slet ikke give et fornuftigt svar på dit spørgsmål, da du blander RAM og harddisk lagerplads sammen.
Stil bare uddybende spørgsmål, hvis du vil vide mere - der er ikke dumme spørgsmål, hvis man er uvidende og vil lære nyt.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
kent a
Indlæg: 698
Tilmeldt: 31. dec 2009, 10:07
Geografisk sted: Erslev på Mors

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af kent a »

lath skrev:
kent a skrev:Nu vil jeg spørge som alm Ubuntu bruger.

Jeg er den type der aldrig har ret meget til at ligge på harddisken. vel 4-5GB ud af de 160GB jeg har.
Så tænker jeg at den bare skal stilles til så højt som mulig.

Men hvad er bagsiden af medaljen.

No pun intended, men jeg kan desværre slet ikke give et fornuftigt svar på dit spørgsmål, da du blander RAM og harddisk lagerplads sammen.
Stil bare uddybende spørgsmål, hvis du vil vide mere - der er ikke dumme spørgsmål, hvis man er uvidende og vil lære nyt.

/Lars



Jamen jeg fårstår det bare på den her med at hvis man sætter swap tallet høj nok vil den smider mere ud på disken, dette er i min optik harddisken, men nok ikke rigtig..

Men hvordan er så lige den funger..

Gerne på jysk da jeg bor på Mors og vi lider lidt af indavl, så tænke kæften er lidt sløv en gang imellem :D :D
Lubuntu 18.04 LTS
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af lath »

kent a skrev:
lath skrev:
kent a skrev:Nu vil jeg spørge som alm Ubuntu bruger.

Jeg er den type der aldrig har ret meget til at ligge på harddisken. vel 4-5GB ud af de 160GB jeg har.
Så tænker jeg at den bare skal stilles til så højt som mulig.

Men hvad er bagsiden af medaljen.

No pun intended, men jeg kan desværre slet ikke give et fornuftigt svar på dit spørgsmål, da du blander RAM og harddisk lagerplads sammen.
Stil bare uddybende spørgsmål, hvis du vil vide mere - der er ikke dumme spørgsmål, hvis man er uvidende og vil lære nyt.

/Lars



Jamen jeg fårstår det bare på den her med at hvis man sætter swap tallet høj nok vil den smider mere ud på disken, dette er i min optik harddisken, men nok ikke rigtig..

Men hvordan er så lige den funger..

Gerne på jysk da jeg bor på Mors og vi lider lidt af indavl, så tænke kæften er lidt sløv en gang imellem :D :D

Nåh - jeg kan nu se at det var noget andet jeg tænkte på, og at det så er det ret nemt at svare på.

Nej, den smider ikke bare mere ud på disken, men sætter du swappines tallet højere end 60 (standard værdien) vil kernen i højere grad smide pages (1 page = 1 blok á 4 Kilo bytes) ud på disk.

  • disk=harddisk er rigtig nok, og så kommer vi til bagsiden af medaljen:
  • Den første er at disken ikke er RAM
  • Harddisken er mindst en faktor 200 gange langsommere end RAM, så begynder et program på f.eks. min "lyn-hurtige" Atom processor der kører med 1,6 GHz=1600 MHz på at swappe svarer det til at den så kører 8 MHz (200 gange 8 MHz = 1600 MHz = 1,6 GHz)

Jeg har prøvet det med paging til swap - for eksempel skifter Firefox til et andet faneblad med en hastighed på omkring 1 minut og 5 sekunder - dræbende laaaangsomt - og jeg skal ikke rører ved hverken tastatur eller mus for så går det helt galt. Uden swap - sker det derimod straks - uden nogen ventetid overhovedet.

Det næste meget nærliggende spørgsmål at stille er hvad fordelene så er:
  • Der er mere fri plads i RAM til at starte et nyt program.
    Det vil starte hurtigere, hvis kernen får behov for at swappe pages ud til swap på harddisken for at plads til programmet i fysisk RAM.
  • Sætter du swappiness til 0 (=tallet nul - ikke bogstavet O), så vil kernen kun begynde at bruge swap, når den absolut ikke har mere plads i RAM.
    Det vil altså sige at med swappiness=0 så vil kernen så vidt det overhovedet er muligt at holde alting i RAM.
    Det er en mulighed man kan bruge, hvis man overvejer at køre uden swap, fordi uden brug af swap vil kernens OOM (Out-Of-Memory) mekanisme begynde at lukke programmer ned typisk gerne det program som spurgte om RAM der ikke var til rådighed, og derefter en række andre programmer der bruger meget RAM, typisk browsere, Java JRE, og kontor programmer som Libre Office.

Håber du kunne bruge svaret, ellers spørg igen :)

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
kent a
Indlæg: 698
Tilmeldt: 31. dec 2009, 10:07
Geografisk sted: Erslev på Mors

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af kent a »

Ja så i bund og grund skal man bare lade den stå på 60, for man ikke får noget af pille ved det..
Lubuntu 18.04 LTS
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af lath »

kent a skrev:Ja så i bund og grund skal man bare lade den stå på 60, for man ikke får noget af pille ved det..


Muligvis.
Har man rigeligt med RAM og ved at man aldrig nogensinde burde få behov til at bruge swap, så sætter man swappiness til 0 (nul).
Har man ikke så meget RAM kan det være en fordel at sætte swappiness til en værdi der er større end 60 (som tidligere nævnt er det max 100).

Hvad man gør er en vurderingssag.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
Brugeravatar
Kurt Christensen
Indlæg: 2246
Tilmeldt: 12. feb 2011, 13:22
IRC nickname: How to be me

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af Kurt Christensen »

Vil jeg med nedestående konfiguration få noget ud af at ændre swap?
Når lejligheden byder sig.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af lath »

How to be me skrev:Vil jeg med nedestående konfiguration få noget ud af at ændre swap?

Uanset konfiguration, som du i øvrigt glemte at oplyse om, så kan jeg ikke udtale mig om det alligevel, da du ikke oplyser noget om hvor meget RAM styresystemet og alle dine programmer bruger tilsammen under normale forhold.

Husk at det ikke kun er hardware - det er også den software der bruger hardware ressourcerne, der afgør om en indstilling er god eller knap så god.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
Brugeravatar
Kurt Christensen
Indlæg: 2246
Tilmeldt: 12. feb 2011, 13:22
IRC nickname: How to be me

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af Kurt Christensen »

Jo det står neden under :P
Jeg bruger sjællen mere end 20% af hukommelsen, så det er nok ikke noget for mig.
Når lejligheden byder sig.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af lath »

How to be me skrev:Jo det står neden under :P
Jeg bruger sjællen mere end 20% af hukommelsen, så det er nok ikke noget for mig.


Så kan du med fordel sætte swappiness til nul

Kode: Vælg alt

sudo sysctl -w wm.swappiness=0

Ændringen træder i kraft omgående.

/Lars

Edit: -w option indsat i kommando
Senest rettet af lath 18. maj 2013, 14:46, rettet i alt 1 gang.
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
Brugeravatar
Kurt Christensen
Indlæg: 2246
Tilmeldt: 12. feb 2011, 13:22
IRC nickname: How to be me

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af Kurt Christensen »

Det vil jeg så lige prøve 8-)
Når lejligheden byder sig.
Brugeravatar
Kurt Christensen
Indlæg: 2246
Tilmeldt: 12. feb 2011, 13:22
IRC nickname: How to be me

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af Kurt Christensen »

How to be me skrev:Det vil jeg så lige prøve 8-)


kurt@kurt-Compaq-Presario-CQ70-Notebook-PC:~$ sudo sysctl wm.swappiness=0
sysctl: cannot stat /proc/sys/wm/swappiness: Ingen sådan fil eller filkatalog
kurt@kurt-Compaq-Presario-CQ70-Notebook-PC:~$

så skriver den sådan?
Når lejligheden byder sig.
Ivan
Indlæg: 1133
Tilmeldt: 6. nov 2009, 17:05
Geografisk sted: Rudkøbing

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af Ivan »

Hvis du kigger tilbage på første indlæg i trådet burde du kunne se hvad der mangler i kommandoen
Arch på Toshiba Satellite C660-1NT og Acer Aspire One 532h
Manjaro på hjemmerullet pc.
Brugeravatar
Kurt Christensen
Indlæg: 2246
Tilmeldt: 12. feb 2011, 13:22
IRC nickname: How to be me

Re: Swappiness: Fortæl kernen hvor agressivt den skal bruge

Indlæg af Kurt Christensen »

Burde er død!
Når lejligheden byder sig.