Hvordan bruke mer enn 4GB minne i en 32bits maskin.

Å ha noe særlig over 4GB minne i en 32bits maskin bærer ikke så mye mening for de fleste applikasjoner. I og med at kjerne gjør en 3:1-split av adresserommet (3GB til hver prosess – 1GB til kjernen) kan ingen prosess nyttiggjøre seg av mer enn 3GB minne. Den mest alvorlige begrensningen er allikvel at kjernen må holde seg innenfor 1GB – dermed kan ikke Linux sin filsystemcache (den generiske page-cachen) cache noe særlig data.

Støtter maskinen amd64 eller em64t er det ikke noe problem – bruk en 64bits kjerne – men gjør den ikke det blir det litt verre.

Redhat Enterprise Linux 4 sin kjerne “hugemem” har en patch som gjør at problemet blir noe mindre – en 4GB-4GB split av adresserommet. Den krever PAE og gjør at overheaden på systemkall blir større – men resultatet er at en enkelt applikasjon kan bruke 4GB samtidig som kjernen kan bruke 4GB. Jeg er ikke 100% sikker på om page-cachen faktisk kan bruke alt minnet kjernet nå har tilgang til – jeg skal teste litt til og se hvordan det funker.

Oppdatering: Suksess! Boksen bruker nå i underkant av 2GB med minne til page-cache og 500MB til “Buffers”. Jeg kan egentlig ikke helt se hva buffers skal være nå om dagen – i og med at Linux fra og med 2.6 bare har en page-cache. LowTotal – mengden lowmem i kjernen – er nå 2GB – i motsetning til det sedvanlige 900MB.
Redhat sin kjerne lar seg nesten uten videre installeres på Ubuntu Dapper. Jeg brukte alien for å lage en deb av fila og yaird for å lage et nytt initrd. Det er selvsagt ikke like enkelt som å bare dytte inn en ferdig deb-kjerne – men det er gjørbart.

En bonus er at maskinvarestøtten til Redhat virker noe mer solid enn Debian og Ubuntu sin. Tross alt har Redhat temmelig betydelig backing fra IBM, Sun, Dell og HP – Ubuntu og Debian er ikke helt der enda.

Det hadde vært skikkelig praktisk om noen laget en Debian-install-CD med RHEL AS sine kjerne – særlig hvis denne holdes løpende oppdatert. Allerede idag merkes det at Debian Sarge er blitt litt geriatrisk av seg – å installere Sarge på splitter nye servere er ikke bare-bare.

Har vi en frivillig? :-)

Oppdatering: Det virker som om dette er gjørbart. Dokumentasjon her.

Comments are closed.