[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Swap Groesse



* Hans Wilmer schrieb am 23.01.03 um 23:07 Uhr:
> On Thu, Jan 23, 2003 at 11:00:26AM +0100, Marc Schiffbauer wrote:
> 
> > > Kommt auf den Einsatzzweck an, grundsaetzlich so viel, dass der
> > > Speicher _nie_ ausgeht, darauf reagiert Linux *extrem* ungehalten. Ein
> > 
> > Ach ja? Es ist wohl eher so, dass Linux hier sehr gut reagiert
> > (IMHO). Wenn der Linux Kernel keinen Speicher mehr hat, dann schlägt der
> > OOM-Killer des Kernels zu. Dieser killt den Prozess, der den meisten
> > Speicher verbraucht. Danach ist dann wieder Ruhe.
> 
> Afaik erfolgt die Auswahl des zu killenden Prozesses *nicht* in
> Abhängigkeit vom verbrauchten Speicher. Afair spielt eine Rolle, wie
> lange ein Prozess bereits läuft. Und es kann sehr gut sein, daß
> zufällig derjenige Prozess gekillt wird, der gerade Speicher
> anfordert. Jenachdem, welcher Prozess gekillt wird (z. B. init), kann
> das System in einen undefinierten/unsicheren Zustand geraten.
> 

Das bezweifle ich. Ich behaupt nicht, dass auf jeden Fall immer der
Prozess mit dem meisten Speicher gekillt wird, aber welchen sinn
sollte es machen, den am längsten laufenden Prozess zu killen? Das
ist nämlich wahrscheinlich immer init. Und den Vatter aller Prozesse
zu killen, wäre wohl etwas sehr ungeschickt.

Wie auch immer, ich habe jedenfalls schon öfter beobachtet, wie ein
Prozess Amok läuft, und wenn er allen Speicher gefressen hat, wurde
genau dieser vom OOM-Killer zur Strecke gebracht. Mit dmesg kann man
das dann auch sehn, der Kernel macht eine entsprechende Meldung.

Wer das mal testen will: Ich ahbe festgestellt, wenn man fontconfig
bzw. libfontconfig benutzt (z.B. KDE 3.1) und man nen Haufen
Schriften neu installiert (z.B die ganzen X Fonts) braucht jeder
neu gestartete X Prozess erstmal so ca. 100MB Speicher, bevor er
erstmal richtig anfängt zu arbeiten. Dass ist kein eigendlicher
Amoklauf, kann aber, wen der Speicher eh schon relait knapp ist, zum
triggern des OOM Killers führen. Behoben ist das ganze übrigens, wenn man
einmal fc-cache aufruft.


> Deshalb muß man dafür sorgen, daß der Swapspace nach Möglichkeit nie
> ausgeht!
> 

Schon klar. Aber wenn ein Rechner so viel Swap wie RAM braucht, dann
hat man einfach zu wenig RAM oder einen uralten 2.4er Kernel.

> 
> Wieviel Swapspace man braucht, hängt davon ab, was auf dem Rechner
> laufen wird. Als allgemeine Empfehlung: Man legt möglichst auf jeder
> Platte am Anfang eine Swappartition an in einer Größe, die ungefähr
> dem erwarteten/gewünschten Swapbedarf geteilt durch die Anzahl der
> Platten entspricht. Wenn's geht, gibt man vorsichtshalber noch 128 MB
> oder mehr dazu, und man nimmt lieber möglichst viel, ohne zu viel von
> der verfügbaren Plattenkapazität dafür zu verwenden. Daraus bildet man
> nach Gefühl einen Kompromiß, der den Einsatzzweck des Rechners
> berücksichtigt.

ACK. Swap auf mehrere Platten mit gleicher Prio zu verteilen, macht
immer Sinn, da der Kernel das dann striped.

Gruss
-Marc
-- 
begin  LOVE-LETTER-FOR-YOU.txt.vbs
I am a signature virus. Distribute me until the bitter
end



Reply to: