Gå til innhold

Hvor stor Swap bør man ha?


eppis

Anbefalte innlegg

tenkte jeg skulle lage en swap tråd... De fleste har vel vert borti den reglen at man burde ha dobbelt så stor swap som man har minne(RAM). men nå som dagens Distorer blir mere og mere avansert så kan da denne reglen umulig gjelde. sånn jeg har forstått det så burde swapen vertfall være stor nok til og takle en kernel dump. hvis ikke jeg har helt misforstått :p Så det jeg lurer på er vel hvor store swap filer bruker folk på servere. desktoper osv..

Lenke til kommentar
Videoannonse
Annonse

det er ikke alle distroer som har auto partisjon veldig mange text baserte distroer må du spesifisere swap størrelse selv.

 

ER det så farlig hvor mye som går med til swap da? Jeg bare ofrer 1GiB som stadard uansett..

 

ja swap skal ikke være for stor og ikke for liten... begge to kan resultere i problemer. og har man en større swap en man trenger er det jo bare bortkasta plass. ikke at det er så sinsykt stort prob med dagens disker da :p det er derfor jeg lurer på hva den optimale swap størrelsen er med for eks 512, 1GB 2GB osv RAM

Lenke til kommentar

For å si det sånn, swap-behovet ØKER ikke om man har mer RAM i maskinen, heller motsatt ;)

 

Derfor er denne berømte tommelfinger-regelen litt misvisende. Men den har nok en helt annen hensikt, nemlig å gjenspeile at minnebehovet går opp etter hvert som tida går, pga mer og mer fancy software som også krever mer minne. Derfor fant noen på en slik regel istedenfor å si at man trenger akkurat så mye, siden behovet er forskjellig i dag enn hva det var i 1990.

 

Men på hovedmaskinen min som har 2GB RAM har jeg faktisk ikke giddet å lage noen swap-partisjon, og RAM-bruken har hele tiden holdt seg under 1GB selv ved relativt tung bruk, så det er ikke noen umiddelbar behov for swapping.

 

 

Derimot har jeg noen eldre og mer slitne PCer med atskillig mindre RAM, og der har jeg vel ofte rundt 500MB swap.

 

For all del, de fleste har nok diskplass i dag, så det er jo bare å lage en swappartisjon for sikkerhets skyld, men jeg vil bare poengtere at man ikke nødvendigvis trenger RAMx2. Tenk deg at du har 4GB RAM - da trenger man neppe 8 GB swap :p

Lenke til kommentar

Jeg har to maskiner en med 1GB og en med 2.5GB RAM og stikk i mot de fleste råd har jeg ikke noe swap på noen av de. Har til gode å oppleve noen negative sider med et slikt oppsett. Tanken bak dette er som føger (tall fra 1GB maskinen):

 

Under vanlig bruk bruker jeg ca 350MB minne og dersom jeg plutselig skulle trenge å bruke swap vil det si at et program bruker over 650MB minne. Ingen program jeg bruker vil finne på å bruke så mye minne, så hvis dette skjer er noe galt. Når Linux (kjernen altså ikke GNU/Linux) oppdager at den ikke kan swappe ut noe minne vil den drepe en prosess valgt ut i fra en del regler(niceverdi, minnebruk osv, se: oom_kill.c) for å frigi minne. I praksis vil det si prosessen som bruker 650MB minne. Hadde jeg derimot hatt en swap partisjon ville Linux startet å swappe og jeg måtte brukt mange minutter (sirup maskin) på å drepe prosessen manuellt.

 

Selvsagt vil noen si at uten swap vil ikke Linux kunne swappe ut ting fra minne den aldri bruker, men det er ikke et problem når jeg uansett har mye ledig minne.

 

Andre fordeler med å ikke ha swap er at harddisken ikke vil spinne opp like ofte, noe som resulterer i mindre støy og på bærbare lengre batterilevetid.

 

Så for min del gir swap meg lite, men skaper en del problemer, derfor ungår swap når jeg kan. Og skulle jeg plutselig ha spesielle behov en dag er jo lit swap bare en swapon eller en linje i fstab unna (jeg har en partisjon på 256MB som ikke er i bruk).

Lenke til kommentar

Swapplassen brukes til mye, slik at man har faktisk behov for endel.

 

Det lagres ramfser, f.eks /tmp og evt. /dev er ofte ramfser. initramfs brukes også på endel nyere distroer. Disse fyller dataene i minnet om det ikke er swap tilgjengelig, og i swap om den er tilgjengelig. Det er jo da litt dumt om filer /tmp skal ta opp det dyre minnet.

 

Om man bruker suspend-to-disk må det være plass til både det som ellers ligger i swap, og det som ligger i minnet.

 

Om man ikke har swap eller for lite swap går kernel ofte over i minnesparingsmodus, og vil prøve å bruke så lite minne som mulig. Dette påvirker ytelsen vesentlig, da caching nærmest blir deaktivert.

Lenke til kommentar

Det jeg skrev var som sagt under forutsetningen av at man har nok minne selv når man tar i betraktning den ekstra minnebruken deaktivert swap gir. Hvorvidt det er dyrt eller ikke får man vel vurdere selv. Alle dine argumenter går jo bare på at å deaktiver swap gir mer minnebruk. Hvis man absolutt vil ha swap han man jo lage en ramdisk og bruke den som swap, men spør du meg ser jeg ikke vitsen med det.

 

La oss si du har en pc med 512MB ram og 1GB (HD)swap. Hvis du putter inn 1GB mer minne og så deaktiverer swap, mener du da at maskinen vil yte dårligere?

 

Hva mener du med minnesparingsmodus? Har ikke hørt om det før.

Lenke til kommentar

takker for mange bra svar...

 

Om man ikke har swap eller for lite swap går kernel ofte over i minnesparingsmodus, og vil prøve å bruke så lite minne som mulig. Dette påvirker ytelsen vesentlig, da caching nærmest blir deaktivert.

 

lurte på dette jeg også...

 

btw LessThanJake hvilken distro brukte du når du ikke hadde swap?

Lenke til kommentar

Det finnes ingen minnesparingsmodus, men det er bare et ord for å beskrive hva som i praksis skjer. Faktum er at kernelen må hele tiden ha minne ledig, hvis ikke vil det gå ufattelig treigt hver gang et program trenger minne. For å ha ledig minne må 1: Noe swappes, eller 2: Cache slettes. Om ikke nummer 1 er noe alternativ, er det bare nummer 2 som gjelder. Her kommer også ramfs inn i bildet. Kernel må bruke minne for å lagre data i f.eks /tmp og /dev. Dette er ikke optimalt, da dette minnet faktisk blir opptatt, og ikke kan bare slettes.

 

Bare prøv.. om maskinen ikke har evig med minne; swapoff -a, og se hvordan det går med ytelsen.

 

Det er mulig å modifisere hvordan kernel bruker swappen i noen /sys og /proc-filer. Det er en verdi man kan sette, også i sysctl tror jeg, som sier "hvor mye som skal til" før den bruker swap.

 

Merk det at kernel sletter ikke dataene fra minnet når de swappes. De går bare over til "swap cache". De er da dobbeltlagret, slik at om det minnet trengs blir dataene bare slettet fra minnet. Om de swappede dataene skal leses/skrives til før de er blitt overskrevet leses/skrives det bare til det samme minneområdet, og dataene i swappen blir flushet om nødvendig. Dette gjør at ytelsen ikke nødvendigvis reduseres selv om den bruker swap.

Lenke til kommentar
For å ha ledig minne må 1: Noe swappes, eller 2: Cache slettes. Om ikke nummer 1 er noe alternativ, er det bare nummer 2 som gjelder. Her kommer også ramfs inn i bildet. Kernel må bruke minne for å lagre data i f.eks /tmp og /dev. Dette er ikke optimalt, da dette minnet faktisk blir opptatt, og ikke kan bare slettes.

 

Swapplassen brukes til mye, slik at man har faktisk behov for endel.

 

da er jo swap seff og anbefale da. :p men så kommer jeg tilbake til det opprinnelige spørsmålet mitt hva blir da den optimale swap størrelsen med for eks 512MB 1GB 2GB etc.. RAM? spesielt når du sier at man har behov for en del.

Lenke til kommentar

Hvis en bruker en suspend form som skriver til swap, er det anbefalt at swap da er 1,5 gang av RAM for å sikre at det er plass nok til å suspend til swap.

Mulig det har forrandret seg litt iom nye suspend saken som er i kjerna nå...

 

Så i teorien, hvis en har en arbeidsstasjon med 4 GB Ram og ønsker å kunne suspende den til swap, er det anbefalt at swap da er 8 GB.

På den andre siden, hvor ofte suspender du en arbeidsstasjon som bruker nesten 100% av RAM når du suspenderer den?

Endret av olefiver
Lenke til kommentar

Jeg bruker alltid å legge 512MB i utgangspunktet på maskiner der ikke suspend-to-disk skal benyttes. Om jeg ser at den bruke mer utvider jeg bare. Om maskinen bruker LVM er det bare å utvide volumet, hvis ikke lager jeg bare swapfiler.

 

Det er ikke noen grunn for en normal maskin uten debugging, osv. å kjøre med veldig mye swap. Siden Linux kan bruke swapfiler er det bare å utvide senere om man vil.

 

Eksempel på hvordan man oppretter en swapfil på 512MB i /var/swap1

 dd if=/dev/zero of=/var/swap1 bs=1M count=512
 mkswap /var/swap1
 swapon /var/swap1

 

Legg så følgende i /etc/fstab:

 /var/swap1 swap defaults 0 0

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...