Immer noch Geschwindigkeitsprobleme mit >1GB RAM?

Jan-Benedict Glaw jbglaw at lug-owl.de
Fre Aug 11 20:35:31 CEST 2006


On Fri, 2006-08-11 20:22:07 +0200, Christian Horn <christian.horn at muc-t-systems.com> wrote:
> On Fri, Aug 11, 2006 at 08:06:53PM +0200, Jan-Benedict Glaw wrote:
> > > Besteht dieses Problem immer noch, oder hat sich da mittlerweile was 
> > > getan? (Wir m├╝ssen eine Kiste, auf der 2.6.17.8 l├Ąuft eigentlich so 
> > > schnell wie m├Âglich von 1GB auf 2GB bringen, wollen da aber nicht vor 
> > > dem gleichen Problem wie damals stehen :->)
> > 
> > Da ├╝ber das Problem quasi keinerlei exakte Daten vorliegen wird man
> > dazu nichts sagen k├Ânnen :-(
> 
> Dem schliesse ich mich an, so krasse Performanceunterschiede habe ich
> da noch nicht erlebt. Der letzte Artikel den ich zum thema sah:
> http://kerneltrap.org/node/6067

Da geht es um eine andere Baustelle: Mit 1GB RAM kannst Du den RAM
problemlos mit 32bit-Pointern ansprechen; irgendwo wird zwischen
userland und kernelland die Grenze gezogen. Im schlimmsten Fall fehlen
Dir "einige" MB RAM.

Mit 4GB RAM hat Du ein anderes Problem: die ("legacy") 32bittigen
PCI-Karten brauchen I/O. Anders als bei ISA-Ger├Ąten, die nur den
Adre├čraum zwischen 0..16MB addressieren k├Ânnen, haben PCI-Karten die
M├Âglichkeit, die vollen 4GB zu adressieren. Da bei PeZehs der Speicher
"von unten" hochgez├Ąhlt wird und fr├╝her solche RAM-Mengen eher
nicht-existent waren, wurde der I/O-Bereich der PCI-Karten unter die
physikalische Oberkante, also 4GB, geh├Ąngt.

PCI-Karten k├Ânnen aber ihrerseits RAM und wasnichtwas mitbringen.
Daher mu├č das Fenster f├╝r PCI-Karten _gro├č_ sein, meist einige 100MB.
Das bedeutet im Umkehrschlu├č, da├č das Chipset den physikalisch
vorhandenen RAM im Bereich von (fiktiven) 3.5 .. 4GB ausblenden mu├č,
um in diesem Bereich 500MB an I/O-Platz f├╝r die PCI-Ger├Ąte
freizuhalten.

Bei "billigen" Chipsets sind diese 500MB RAM schlichtweg verloren. Sie
sind bezahlt und garantiert unbrauchbar.

Die Luxus-Variante ist, da├č ein f├Ąhiges Chipset den ├╝berdeckten RAM an
die Adressen von 4GB aufw├Ąrts legt. Damit ist er wieder verf├╝gbar.
Einziger Haken: Jenseits der 4GB braucht man mehr als 32bit, um zu
adressieren. Benutzer-Programme, die allesamt 32bittig laufen, k├Ânnen
weiterhin maximal 4GB (im virtuellen Adre├čraum) gro├č sein, aber der
Kernel mu├č mit Tricks und Kniffen irgendwie auch Adressen mit mehr als
32bit generieren k├Ânnen, um den RAM ab der Adresse 4GB zu adressieren.
Dazu werden die Physical Address Extensions, PAE genannt, genutzt.

Leider gibts die nicht f├╝r umsonst: der Kernel mu├č _einiges_ mehr an
Verwaltungs-Aufwand treiben, _auch_ f├╝r all den RAM < 4GB.

Daher kann es sich lohnen, lieber auf das halbe Gig zu verzichten, als
daf├╝r den Preis erh├Âhter Langsamkeit (<-- kreativ:-) zu zahlen.

Das ├ärgerliche hierbei ist, da├č es sich nicht um 50MB oder so handelt,
bei bei 1GB physikalischem RAM, sondern da├č man hier, je nach Chipset,
BIOS und PCI-Karten, schnell auch mal auf 800MB verzichten mu├č.

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw at lug-owl.de              +49-172-7608481
Signature of:  The real problem with C++ for kernel modules is: the language just sucks.
the second  :                                            -- Linus Torvalds
-------------- nńchster Teil --------------
Ein Dateianhang mit Bin├Ąrdaten wurde abgetrennt...
Dateiname   : nicht verf├╝gbar
Dateityp    : application/pgp-signature
Dateigr├Â├če  : 189 bytes
Beschreibung: Digital signature
URL         : http://www.tlug.de/pipermail/tlug_allgemein/attachments/20060811/1a277b05/attachment.pgp