On Thu 03 Sep 2009, Sebastian Gödecke wrote:
Hallo, folgende Frage: wie ist es möglich, das ich für eine Anwendung ALLES zugehörige zu der Anwendung in den RAM lade ? Ich möchte verhindern, das sich die Anwedung der Festplatte bedient. diese ist mit 60 Mb/s recht langsam und ich glaube ich der flaschenhas hier.
Deine Frage ist ein wenig unklar, insbesondere der Begriff "Anwendung". Wenn Du als Anwendung alles definierst, was der Computer macht, dann bau einfach die Platte aus. Alles, was er dann tun kann, muß aus dem RAM kommen. Zugegeben, das Starten der Anwendung wird ein bissel schwierig. Man könnte das aber zur Not über's Netz lösen. Nun ein wenig erster, Du könntest im initrd ein Script aufrufen, das die Platte komplett in einen RAM-Disk kopiert. Diesen benutzt Du dann als Root-Filesystem. Beim Shutdown müßtest Du dann das Ganze wieder zurück schreiben. Zwischendurch läuft es aber nur im RAM, vorausgesetzt Du hast genug. Noch ein wenig erster, schalt erstmal allen Swapspace aus. Dann modifizierst Du Deine Anwendung, daß sie zu geeigneten Zeitpunkten mlockall aufruft. U.U. reicht es das einmal in einer mit LD_PRELOAD geladenen Library zu machen. Mit diesem Syscall kannst Du dem Kernel nämlich sagen, er soll den gesamten Prozeß in den RAM laden und mit einem Parameter auch noch, daß er alle weiteren RAM Anfragen auch so behandeln soll. Insgesamt ist das aber nur bei Programmen zu empfehlen, die wenig bis gar keine shared libs benutzen. Die glibc ist nämlich recht groß und die meisten Funktionen werden bei weitem nicht von jedem Programm benutzt. Du würdest also einen großen Batzen RAM verschenken. Wenn Du nur zu einem Großteil vermeiden willst, daß ein Prozeß auf die Platte zugreift, dann steck richtig viel RAM rein (so 50-100GB) und kopier einfach die Dateien, die Du brauchst nach /dev/null bevor Du Deine Anwendung startest. Dadurch muß der Kernel das Zeug nämlich von der Platte lesen und es landet im Cache (RAM). Wenn Du genug RAM hast, vergißt der Kernel diesen Cache kaum wieder. Torsten -- Need professional mod_perl support? Just hire me: torsten.foertsch@gmx.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org