Du har muligvis oplevet systemlags, tung swap-brug eller problemer med lav hukommelse i dit Linux-system. Et sædvanligt råd er at "mindske swappiness-værdien", reducere swap-brugen. men hvad er swappiness? Og er det virkelig godt at finjustere det?

Bemærk : Vi vil ikke gå i detaljer om swap partitionen. Du kan læse alt om det i vores artikel om, hvad du skal vide om Swap-partition på Linux.

Swappiness

Der er en værdi, der hedder swappiness i UNIX-lignende systemer, der bestemmer, hvordan sider i hukommelsen skal håndteres. Standardværdien på de fleste systemer er "60", men den kan indstilles til alt mellem 0 og 100. Hvis hukommelsen kører lav, vil kernen enten udskyde nogle filcaches for at få mere ledig RAM til processer, eller det vil bytte nogle processer sider fra RAM til disk.

En standard på 60 betyder bytte vil blive brugt mindre, og I / O-caches vil mere sandsynligt blive frigjort for omfordeling af RAM. Udskyde cacher betragtes som "billigere" (mindre ressourceintensive), mens udveksling af sider indeholder disk læser og skriver, hvilket gør dem mere "dyre". Ved en værdi på '60 'vil bytteforbruget være lidt lavere end genbrug af cache. Hvis værdien af ​​swappiness er forøget til 100, vil swapping og fil cache eviction blive brugt med lige vægt. Dette betyder mere bytte og hurtigere I / O end standard. Lavere værdier som "10" betyder, at swapping vil blive brugt meget mindre, og I / O-caches kan meget tidligt blive udvist til fordel for processer. Dette kan øge interaktiviteten, men kan også skade I / O-hastigheden.

Faldende swappiness

Du vil ofte se rådene på hjemmesider og fora for at reducere swappiness til omkring "10." Dette skal accelerere tingene ved at bruge mindre bytte og holde flere processer i fysisk RAM. Denne logik kan være lidt for ligetil og kan ikke være en "one size fits all solution."

At reducere værdien af ​​swappiness kan være god i følgende scenarier:

  • For databasesystemer, eller hvis du bruger en masse databaseintensive applikationer : Databaser håndterer generelt fil caching langt bedre end OS ville. Hvis du reducerer swappiness, vil du begrænse OS'ens filcaching, hvilket giver en chance for databasen til at håndtere sine egne caches.
  • Til interaktivitet : Hvis du multitask meget, men håndterer få filer eller ikke åbner store dokumenter, kan dette forbedre, hvor jævnt dit system vil føle. Mindre processer vil blive skrevet ud på disken, og da RAM-adgang er meget hurtigere, kan din computer føle sig hurtigere. Du skal også huske på, at dette kan reducere I / O-ydeevne. Hvis du har slow disks eller gør noget jeg / O intensivt, kan det endda skade præstationen.
  • Til placebo : Mange mener, at en lavere swappiness vil fremskynde systemet. Alvorligt, at du tror, ​​at dit system er hurtigere, kan det medføre, at det bliver hurtigere også.

Husk på, at faldende swappiness kan resultere i nedbrud og processer, der slås slogvist af systemet for at frigøre hukommelsen. Faldende swappiness vil være bedst, hvis du har nok RAM til rådighed til at køre dit system problemfrit. Men du bør holde værdien over "10", da nogle byttebrug er godt at have.

Øget swappiness

Øget swappiness kan have den generelle fordel ved at fremskynde I / O. Selvom det ikke ofte anbefales, kan stigende swappiness komme til nytte, hvis:

  • Du udfører nogle I / O-intensive operationer, og du har langsomme gamle HDD'er . For eksempel: Udførelse af sikkerhedskopier eller batchredigering af billeder kan være I / O-intensiv (En bemærkelsesværdig undtagelse er databaser, der naturligvis er I / O-intensive, men kan drage fordel af en lavere swappiness-værdi som set ovenfor.).
  • Du har lav hukommelse, men har relativt hurtige diske. I dette usandsynlige scenario kan en højere værdi af swappiness hjælpe med at håndtere hukommelsen mere effektivt (selvom det er for højt, kan det muligvis igen skade præstationen.).

Hvordan man håndterer swappiness

Først bør du overveje, om du skal røre denne værdi overhovedet. Oplever du ydeevneproblemer? Og vigtigere, har du prøvet andre system tweaks endnu? Hvis ikke, er det nok bedst at se andre steder først. Men hvis du har et bestemt scenario i tankerne, vil du måske fortsætte.

Næste, hvor tung er din swap-brug? Du kan finde ud af det med ethvert valgovervågningsværktøj efter eget valg eller med den free kommando. free -m giver dig et øjebliksbillede af hukommelsesforbruget i megabyte. Ved løbende overvågning kan du bruge watch.

 se -n 1 fri -m 

Dette kører kommandoen free -m hvert sekund og udskriver dens output, indtil du trykker på "Ctrl + C."

Som du ser ovenfor, bruges meget lille bytte af systemet, som denne artikel er skrevet på.

Nu, hvis du oplever at bytte, kan du være interesseret, hvor meget af det er aktivt. Kommandoen vmstat fortæller alt, hvad du behøver at vide om dit systems virtuelle hukommelsesbrug (bytte og fysisk ram sammen).

 vmstat 1 

Du skal tjekke swap kolonnen, hvor si betyder "swap in", og so betyder "swap out." Hvis tallene er høje betyder det en masse bytteaktivitet, som er en indikator for problemer med lav hukommelse. Hvis du ser bytteforbrug ved free men lidt aktiv bytte, kan der forekomme tweaking swappiness.

Det er også en god ide at etablere andre præstations benchmarks som disk I / O, gennemsnitsværdier mv., Så når du tester dine nye swappiness-værdier, har du noget at sammenligne imod.

For at teste en anden swappiness-værdi kan du indstille den midlertidigt med kommandoen sysctl . Dette behøver ingen genstart, og effekten er øjeblikkelig. Faktisk vil genstart genoprette standardværdien, så du er helt sikker på at eksperimentere:

 sudo sysctl vm.swappiness = 10 

Selvfølgelig kan du sætte en værdi i stedet for "10" (mellem "0" og "100").

Når du har fundet din foretrukne værdi, kan du permanent ændre systemkonfigurationen ved at redigere "/etc/sysctl.conf"

 sudo nano /etc/sysctl.conf 

og tilføje linjerne

 #Sæt swappiness værdi vm.swappiness = 10 

til slutningen af ​​denne fil, med den værdi, der er sat til din præference igen, selvfølgelig.

Konklusion

Sænkning af swappiness til "10" anbefales ofte som en one-size-fits-all-løsning, men den faktiske anvendelse af teknikken kan være en lille smule mere kompliceret end det. Ved at etablere benchmarks, kende dit system, hvordan du bruger det, og hvad du har brug for fra det, kan du finjustere din swap-brug og opnå en vis ydeevne (enten interaktivitet eller I / O) stigning.