Mailinglist Archive: opensuse-de (5973 mails)

< Previous Next >
Re: Speicherverwaltung und Absturz
  • From: B.Brodesser@xxxxxxxxxxxxxx (Bernd Brodesser)
  • Date: Wed Oct 25 09:27:59 2000
  • Message-id: <20001025112759.A26847@xxxxxxxxxxxxxx>



Hallo Ralf,

Danke für Deine schnelle Antwort.

* Ralf Corsepius schrieb am 25.Okt.2000:
Bernd Brodesser wrote:

ich stand mal wieder kurz vor einem Absturz.
Nicht unbedingt, ob hängt davon ab, was genau passiert ist.

Klar. Deshalb auch fast.

Die von Dir beschriebenen Symptome deuten auf einen Memory-Race hin,
d.h. etwas, dass entweder mehr Speicher allozieren wollte, wie
verfügbar, oder auf etwas, dass rekursiv unendlich viel Speicher
allozieren wollte.
Dieses etwas kann ein Programm sein (dann wäre es ein Bug im
Programm), der Kernel (d.h. ein Memory Leak im Kernel) oder auch
einer Bibliothek (d.h. ein Bug in einer Library, zB. der
Speicherverwaltung in der libc).

Wenn wir mal Hardwareprobleme außen vor lassen, dann bin ich der
Meinung, daß der Kernel es im Griff kriegen müßte, egal wie kaput ein
Programm ist. Wenn ein kaputes Programm mehr Speicher anfordert als es
gibt, dann müßte der Kernel Stopp sagen.

Warum wird da Swap benutzt, obwohl genügend Mem frei ist?
Weil irgendetwas in den virtuellen Speicher geladen wurde, aber im
Augenblick gerade nicht benutzt wird.

Ja.

Dies tritt bei Memory-Races gerne auf, da der gerade aktive
(durchgedrehte) Prozess dann allen verfügbaren Speicher allozieren
will und andere Dinge (z.B. dein gerade offener Netscape oder
irgendwelche schlafenden Daemons) geswappt werden. Hat sich das
System danach dann wieder gefangen, bleiben diese dann bis sie
wieder benutzt werden, ausgelagert.

Schon klar. Aber das System stand doch deshalb still, weil ständig
geswapt wurde, nehme ich mal an.

Wenn das System danach weiterläuft und der Swap auch irgendwann mal
wieder freigegeben wird ist wahrscheinlich alles in Ordnung.

Ja. Wenn er freigegeben wird.

Allerdings können Memory-Races auch durch Kernel-Bugs hervorgerufen
werden.

Hmm, klar, wenn ein Kernel nicht richtig funktioniert, kann man alles
vergessen.

Warum ist
überhaupt soviel frei?

Das war allerdings nachdem das System extrem langsam wurde.
Passt genau. Dieses "Langsam werden" war der Memory-Race, der alle
anderen Prozesse in den Swap gedrängt hat, bevor seine
Speicheranforderungen zur Folge hatten, dass diese nur noch im Swap
erfüllt werden konnten (680 MB Swap bei 128MB RAM ist nicht
unbedingt sinnvoll).

Warum ist das nicht sinnvoll?

Vorher war
kein Swap mehr frei. Nichts, niente. Oftmals kommt es dann zum
Absturz. Eigenartigerweise funktionieren die Terminalumschaltung
ALT+FX auch noch nach einem Totalabsturz, nicht aber die Umschaltung
von X auf einem Terminal. Überhaupt ist an einem Absturz immer X
beteiligt.

Ist da mit dem neuen Kernel oder mit dem neuen XFree Besserung in
Sicht?

Um dazu eine Aussage machen zu können sind deine Angaben nicht
aussagekräftig genug.

Es wäre wichtig zu wissen, welches Programm durchging. Ein Top
während des Memory-Races würde Auskunft geben können.

Schön, und wie rufe ich top auf, wenn nichts mehr geht? Ich kann ja
noch nicht mal zur Konsole wechseln. Und auf X kann ich auch nichts
machen. Ich weiß, da gibt es ähnliche Teile.

Ansonsten passen die Symptome auf
* die berüchtigten Memory-Leaks in Kerneln < linux-2.2.16-SuSE bzw.
linux-2.2.17.

linux-2.2.14 Original SuSE 6.4

* die Memory-Leaks in der glibc2
* Treiberbugs.
* Den klogd Bug in älteren Kernels

?

* Einen Bug in g++-2.95.2
* Das End-Of-RAM Problem

?

Und solltest Du 2.4.x-Kernels oder KDE2 einsetzen, ... no comment.

Nein, ich setze keinen 2.4er Kernel ein. Ja, ich setze KDE2 ein. Na
und? Es kann doch nicht angehen, daß ein wie auch immer kaputes
Anwenderprogramm ein System zum Absturz bringt. Das ist doch der
Riesenvorteil von einem UNIX, daß da immer noch der Kernel sitzt und
das Anwenderprogramm nicht alles erlaubt. Auch nicht wenn es von root
ist, was im übrigen bei mir nicht der Fall war.

ALT+SysRq ist ja ganz nett, aber damit kann man auch nur den Rechner
neu booten. Ich suche was um den XServer killen zu können, auch wenn
alles steht.

Moment mal, wieso alles steht? Wenn Dich oben richtig verstanden
habe, lief dein System hinterher doch noch, nur konntest während der
Swapperei nicht interaktiv eingreifen, oder?

Ja. Ich habe jetzt nicht vom aktuellen Fall geredet. Sorry, ging ein
wenig durcheinander. Aber so was habe ich schon mal von Zeit zu Zeit.
Allerdings sehr selten. Waren bestimmt andere Kernel. Experimentelle
Kernel benutze ich allerdings nicht. Wenn ich auch sonst gerne ein
wenig rumexperimentiere, aber am Kernel lieber nicht.

Ansonsten: als Root auf der Konsole: killall -9 X

Ach und wie komme ich auf der Konsole? Nein auch eine Eingabe auf
einem xterm funktioniert dann nicht mehr. Und wenn ich auf einer
Konsole bin, dann nimmt sie aber nichts mehr an.

Im aktuellen Fall habe ich auch so was ähnliches gemacht. Ich habe
einfach auf der Konsole auf der ich startx aufgerufen habe ein CTRL-C
eingegeben. Geht imho am schnellsten. Nur leider ist deswegen eine
Konsole belgt, wenn ich startx nicht im Hintergrund schicke.

Bernd


--
Was ist quoten? Quoten ist das Zitieren aus einer mail, der man antwortet.
Und wie macht man es richtig? Zitate werden mit "> " gekennzeichnet.
Nicht mehr als nötig zitieren. Vor den Abschnitten das Zitat, auf das man sich
bezieht, mit einer Zeile Abstand oben und unten. |Zufallssignatur 12

---------------------------------------------------------------------
To unsubscribe, e-mail: suse-linux-unsubscribe@xxxxxxxx
For additional commands, e-mail: suse-linux-help@xxxxxxxx


< Previous Next >
Follow Ups
References