Udgivet i

Check din computers RAM brug

Har man situationer hvor man synes computeren bliver langsom?

Hvad årsagen er kan man måske se ved at kontrollere hvad hukommelsen bliver brugt til og hvor meget der bruges.

For at se info om tilgængelig hukommelse og forbrug af samme kan du liste indholdet af meminfo

cat /proc/meminfo

Hvor er hvilke(n) swapfil/partiton der er i brug

cat /proc/swaps

Hvor er swap placeret

swapon -s

Statistik over aktuelt brug af virtuel hukommelse

vmstat
Udgivet i

Gør Linux hurtigere – hvordan?

Hvis man synes computeren er blevet langsom – eller altid har været lidt sløv i optrækket kan man kigge på nogle justeringer.

Dette indlæg giver en introduktion til swap og paging.

Fra artiklen “All about Linux swap space” (første afsnit oversat fra engelsk)

Linux opdeler den fysiske RAM (random access memory) i afsnit som kaldes pages (sider). Swapping er den process hvor et sådant hukommelses afsnit bliver kopieret til et konfigureret afsnit på harddisken, kaldet swapspace, for at frigøre dette afsnit af hukommelsen. Den fysiske hukommelse lagt sammen med størrelsen på diskafsnittet er den virtuelle hukommelse som systemet råder over.

Swapping

Swapping er nødvendigt af to grunde.

  • Når systemet har brug for mere hukommelse end der er til rådighed, lægger kernen de mindst brugte hukommelses sider ned i swapspace og giver den frigjorte RAM til den proces der skal bruge det.
  • En del af den hukommelse der bliver brugt ved start af en proces bruges måske kun ved opstart og derefter ikke mere. Systemet kan frigøre hukommelse ved at anbringe disse sider i swapspace.

De fleste brugere – særligt på Windows – har oplevet at systemet skal bruge mere hukommelse end der fysisk er tilgængeligt. Windows brugere har det helt inde på livet – for når Microsoft har bestemt at der skal opdateres – kan det føles som maskinen går i koma.

Årsagen er at diskadgang er langsommere end RAM. Hvor hukommelses hastighed kan måles i nano-sekunder måles diskadgang i millisekunder og jo mere der skal swappes jo langsommere bliver systemet.

Linux har to typer swap

  • et diskafsnit som kun bruges til dette formål
  • en swap fil

For at se din opsætning kan du i en terminal udføre swapon -s

Justering af swap brug

Når du installerer Ubuntu Linux vil installationsprogrammet oprette en swap partition med den for distributionen anbefalede størrelse i forhold til mængden af fysisk hukommelse.

Der findes en parameter til kernen som angiver hvornår systemet skal bruge swap. Denne parameter kan ses ved at køre denne kommando i en terminal

~ >>> cat /proc/sys/vm/swappiness
60

Denne parameter kan have værdier fra 0 til 100 og standard værdien er 60. Øvelsen går ud på at finde et tal som skaber en fornuftig balance mellem RAM og swap så systemet er responsivt og brugen af diskbaseret hukommelse er så minimal som mulig. Der findes mange teorier og anbefalinger og det vil altid være en afvejning af den faktuelle brug af systemet.

Det er absolut muligt at et system kan køre uden brug af swap – såfremt man har store mængder RAM. Men løber man ind at der ikke er hukommelse nok vil systemet bryde ned uden redningsmuligheder. Det betyder at data kan gå tabt – som eksempel kan nævnes komplicerede AutoCAD tegningerk, en kunstners grafiske arbejde eller det komplette layout for et klubblad.

Så fuldstændig deaktivering af swap kan være fristende for et high-end system men kan vise sig fatal og må frarådes.

En bruger på Manjaro Linux forum er fremkommet med en formel, som for ham har givet den rette balance mellem RAM og swapspace.

Formlens elementer er (100*128MiB)/(1024*x) hvor x er systemets RAM kapacitet i GiB. RAM værdien 128MiB er brugt for et almindeligt anvendt system. Tallet kan være mindre hvis der ikke anvendes RAM krævende processer eller højere hvis processerne sædvanligvis kræver meget RAM. Eksempelvis AutoCAD og grafisk arbejde. Målet er at der altid er ledig RAM ved process start for at undgå unødvendig swapping når processen startes.

Ifølge hans formel vil system med 8GiB RAM fungere godt med swappiness=2 og et system med 2GiB RAM med swappiness=7.

Ændring af swappiness

Man kan ændre swappiness on-the-fly ved, som root, at køre følgende kommando

# echo 7 > /proc/sys/vm/swappiness

En permanent ændring indebærer oprettelse af en konfigurationsfil.
Følgende fil oprettes som root /etc/sysctl.d/99-sysctl.conf

$ sudo nano /etc/sysctl.d/99-sysctl.conf

Indsæt teksten vm.swappiness=7

Tast F2 ↝ Y / J ↝ Enter

Opsummering

Vi har i denne artikel kigget på swap og mulighederne for tilpasning.

Du skal ikke være bange for at prøve dig frem, det er trods alt dig der bruger systemet.

Skulle du være interesseret i den dybere mekanik bagved er der denne glimrende redegørelse på stackoverflow med uddybende link til dokumentionen.

Link: How does x86 paging -work