Montag, 27. April 2009

Speicherfrust

Seit Monaten schlug ich mich herum mit einem äußerst nervigen Computerproblem, bis heute. Die Rede ist von meinem Gentoo, das sich aufhing sobald ich zuviel RAM belegt hatte. Ich konnte kein Swap verwenden; der Grund dafür ist, dass mein Mainboard (vermutlich aufgrund von starken Temperaturschwankungen in einer der heißeren Regionen Madagaskars) völlig hinüber ist. Durch den defekten DMA Controller bin ich gezwungen alle Geräte im PIO Modus anzusprechen, was das System natürlich enorm ausbremst da die CPU Last bei jedem Zugriff auf 100% schnellt.

Firefox ist ein einziger RAM-Fresser; da konnte es schon mal passieren, dass man eine Anwendung zuviel öffnete und schwups passierte es: Das System griff auf die Festplatte zu wie wild, Musik im Hintergrund fing an zu stocken, der Mauszeiger reagierte kaum noch - bis schließlich so ziemlich alles völlig zum erliegen kam. Kein Login von außen möglich. Mein einziger Ausweg war damals der kalte Reboot, da ich keine rettende Lösung kannte (außer aufzupassen dass der Speicherverbrauch nicht ein gewisses Maximum überschreitet).

Anfangs noch dachte ich, es läge ganz einfach an der Auslagerungsfunktion vom Kernel. Also, dass, sobald der RAM voll ist, er jede Menge Daten auf die Swap-Partition schaufelt (was ja eh schon langsam ist), und diese Aktion durch den lahmen PIO Modus alles Andere blockiert. Das erschien mir logisch woraufhin ich by-all-means versuchte diesen Mechanismus zu deaktivieren, was mir einfach nicht gelingen wollte. Zuallererst probierte ich es, mit swapoff, zu deaktivieren, kommentierte dann nachträglich den Eintrag für die Swap-Partition in /etc/fstab aus; ich setzte den sysctl Wert vm.swappiness auf null; ja, ich entfernte sogar letztendlich das Kernelmodul.

Es half alles nix. Der RAM war voll, und die Festplatte fing an zu rattern. Warum?? Ich fand keine Lösung. Irgendwann fand ich heraus, dass der Kernel ja eigentlich noch prächtig reagierte. Denn mit dem SysRq Key konnte ich erfolgreich den Schaden begrenzen und das System vernünftigen neustarten - später, nach erneuter Recherche, dann sogar lediglich die aktuelle X Session killen und mich neu einloggen. Trotzdem waren alle Programme zu, und die Arbeit teilweise verloren.

Heute, als ich Doxygen kompilieren wollte und mir das Debakel 5 Mal am Stück passierte, versuchte ich mich wieder einmal daran, diesem merkwürdigen Festplattenzugriff auf die Spur zu kommen. Manchmal sah man ja anhand von dmesg, dass der Kernel tatsächlich ein Programm ausgewählt und terminiert hatte aufgrund einer out-of-memory condition; das passierte aber viel zu selten - und wenn, dann auch erst nach einer halben Ewigkeit. Da jegliches Swapping vom Kernel bereits entfernt war brauchte ich dort nicht mehr suchen. Stattdessen nahm ich mir vor jede einzelne vm-Variable von sysctl zu überprüfen und wurde sehr schnell fündig. Des Pudels kern liegt im ausgetüftelten Speichermanagement von Linux.

Hier kann man den relevanten Part nachlesen (er beschreibt sogar fast dasselbe desaströse Verhalten im Abschnitt "Kernel virtual memory management"). Der Kernel vergibt nämlich allerhand Speicher, den er gar nicht hat, da er weiß, dass die meisten Programme gefräßige Monster sind. Dieses Zusammenspiel ist normalerweise kein Problem - auf meinem System jedoch, schon. Wieviel er sich dabei extra herausnimmt wird mit der sysctl Variable vm.overcommit_ratio festgelegt. Einmal auf 0 (% extra) gesetzt, gab es keine Probleme mehr. Ein geeigneter Task wurde beim Testlauf mit Gimp (und riesigen Bildern) sofort vom Kernel ausgewählt und gekillt...

Cool!

Nachtrag: Es ist nicht so einfach wie ich mir das vorgestellt hatte, es passiert nämlich immernoch: Der kswapd blockiert das ganze System (selbst Tasks die mit nice -20 laufen) und die CPU befindet sich 90% der Zeit in Wartestellung. Also forschte ich weiter und fand heraus, dass sich mit der Variable vm.overcommit_memory das Grenzverhalten einstellen lässt. Ist sie gleich null werden heuristische Verfahren angewendet, die abwägen, ob Anwendungen getötet werden müssen oder nicht. Bei dem Wert 2, wird konsequenter vorgegangen - das kann allerdings gefährlich werden wenn vm.overcommit_ratio null ist: Denn dann kann keine Anwendung mehr auf dem gesamten System Speicher reservieren, noch nicht mal init. Aber selbst mit der harten Einstellung kann es immer noch manchmal vorkommen, dass sich das System zu Tode kswapd't. Wer mehr Informationen dazu hat, bitte kommentieren ;-)

Nachtrag: Nach längerem Testen habe ich mich nun dazu entschlossen, meine Swap Partitionen wieder anzuschalten. Dabei kann man auch denen, die eine schnellere Zugriffsgeschwindigkeit besitzen, ganz einfach eine höhere Priorität geben als den Anderen. Diese Lösung ist tatsächlich empfehlenswerter, als das Swapping komplett auszuschalten - denn der wundersame, unaufhörliche Festplattenzugriff des kswapd, der das ganze System zu Tode blockiert, ist nämlich viel, viel schlimmer als im langsamen PIO Modus auszulagern. Mit dem deadline scheduler des Kernels lässt sich das auch noch ganz gut ertragen.

Montag, 20. April 2009

Verborgene Weisheiten

Ich bin heute zufällig über den Wikipedia Artikel "Molotowcocktail" gestolpert und als ich mir die hitzige Diskussion über die deutsche Rechtslage zu Bombenbauanleitungen durchlas, wurde mir klar, dass es in der Wikipedia noch weitaus mehr Informationen gibt, als man als Deutscher eigentlich sehen soll. Streitpunkt ist in diesem Fall das deutsche Waffenrecht.

Mal abgesehen davon, dass hier ganz klar ersichtlich (zu Unrecht!) deutsche Gesetze auf Österreicher und Schweizer Bürger angewendet werden (obwohl übrigens sogar im Duden die Bestandteile erklärt werden) wird hier das deutsche Volk mal wieder bevormundet (oder bevormundet sich selbst). Zumindest in seiner eigenen Sprache, denn in manch anderer Sprachversion des Artikels wird daraus überhaupt kein Hehl gemacht.

Die Französische z.B., ist ja schon recht aufschlussreich, aber die russische Variante kann ich nur empfehlen. Oh Gott, mache ich mich jetzt Strafbar wenn ich sie verlinke? Ja! Denn ich bin für meine Links verantwortlich. Das gilt übrigens auch für die Wikipedia selbst - leider haben die Admins gegen die vielen Bots überhaupt keine Chance (irgendwann hat man es scheinbar sein lassen; ist über-indizierte-Literatur-sprechen eigentlich auch Strafbar?). Also:

1) Auf die russische Version des Wikipedia Artikels gehen.
2) Link kopieren
3) Link einfügen bei translate.google.com
4) All die grausamen Details erfahren

Bei deutschen Gesetzen bekomme ich jedes Mal einen Würgekrampf. Was soll der Scheiß? Das ist Wissen. Warum sollte man das verbieten? Vielleicht brauchen wir das ja noch mal irgendwann. Und wenn schon, liebe Politiker, dann am besten gleich richtig. Also bitte auch den Artikel über Schwarzpulver löschen und Chemieunterricht verbieten. Affen! Na egal; diese senilen, weltfremden Schauspieler werden letztendlich eh keine Chance haben. In nicht allzu langer Zeit werden wir ganze Exabyte auf die Größe eines Fingernagels packen können und dann ist es eh bald endgültig vorbei mit der Zensur.

Hier mal ein paar Beispiele von brutalem Vandalismus, mit dem die Aufpasser tagtäglich zu kämpfen haben:

- Verrückt, was die Leute mit Wunderkerzen so alles anstellen...
- Öl als Bindemittel eingesetzt?? Wie fies!
- Huiuiui... na zum Glück wurde dieser Artikel rechtzeitig entschärft!

Einfach mal die Früheren Versionen durchstöbern. Manche hatten zwar gefordert auch diese zu verbren... ähhm zu löschen, allerdings wurde dies leider versäumt (- und wenn schon, es kommen permanent neue, unerwünschte Einträge hinzu).

Ach ja, und nicht vergessen: Wenn man irgendwann mal in die dumme Situation kommen sollte, mit so einer verbotenen Waffe einem feindlichen Panzer zu begegnen, dann immer schön auf die Lufteinzugsschächte des Motors werfen, denn davon explodiert der Tank. Hab' ich auf Wikipedia gelesen...

Montag, 6. April 2009

Volksgehirnwäsche!

Auch wenn manche der Ansicht sind, dass ja alles dermaßen Scheiße ist, bin ich froh, ein Deutscher zu sein, frei zu sein, beliebig umher reisen zu können, und meine Meinung sagen zu dürfen, solange selbstverständlich alles im Rahmen der Verfassung bleibt. Ich weiß bescheid über unsere Probleme, unseren aktuellen Diskussionen über sog. potentielle Gefährder, Internetzensur, Überwachung usw. - und trotzdem! Meine Meinung, nämlich Politiker seien Schweine, steht mir gänzlich frei, hier, öffentlich zu machen. Viele Andere haben dieses Privileg nicht. Obwohl ich eine ganze Reihe von Staaten nennen könnte, spreche ich aber speziell von einem Land, welches sich gerade erst vor kurzem wieder mal mit einem sensationell lächerlichem oder beeindruckend gefährlichem Auftritt, nicht nur für die Medien, als böser Schurkenstaat geoutet hat. Nord Korea!

Ein faszinierendes Land, welches in seiner bedrohlichen Art einzigartig ist. Durch Zufall stolperte ich im Netz über diese seltene "Dokumentation" der dortigen Zustände. Ja, Zustände. Man kann das Ganze eigentlich nur noch mit einem einzigen Wort beschreiben: Irrsinn. Also, dass muss man sich mal überlegen. Da wird ein ganzes Land einer ständigen Gehirnwäsche unterzogen und ist völlig abgeschottet vom Rest der Welt. Wie ist denn sowas heutzutage noch möglich?? Ich weiß es nicht. Aber es muss eine Kombination aus Unterdrückung, Verarsche und völliger (Gedanken-)Kontrolle über einfach alles sein. 1984 eben. Finanzieren lässt sich das Ganze ja anscheinend doch recht einfach. Ich frage mich ernsthaft was man tun könnte um einen Kontakt mit der Außenwelt aufzubauen, wenn man erstmal drin ist? Ich fürchte es ist, vor allem als Ausländer, gänzlich unmöglich.

Nachdem ich mir die Doku angesehen hatte, mich in ein paar News der hiesigen Propaganda Maschinerie vertiefte, die mich übrigens sehr stark an den Nazikram sowie an die DDR erinnerte (jede Menge Sprachmanipulation), wollte ich eigentlich einen größeren Beitrag zu der ganzen Thematik schreiben. Aber mir fehlen bislang die Worte - am besten, man macht sich davon selbst ein Bild. Öffentlichen Ankündigungen sind in einem Stil geschrieben, als befände sich das Land im Krieg mit alles und jedem. Im Osten wusste ja jeder so ziemlich was abgeht, aber dort, in NK, müssen die Menschen wohl inzwischen wirklich hundertprozentig überzeugt davon sein, dass wir gefährliche Aggressoren sind. Was soll's. Irgendwann muss auch dieser eine Bastard sterben. Hoffen wir nur, dass er nicht "würdevoll" ersetzt wird, wie sein Vater einst.

PS: Soviel zu dem Argument, dass die meisten Google Bilder von Flugzeugen aufgenommen worden sind, ich glaube die Nordkoreaner hätten es ziemlich schnell vom Himmel geholt.