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@suse.com For additional commands, e-mail: suse-linux-help@suse.com