X-Window Server verbraucht Speicher

Supportdatenbank (pohletz_x11_consuming_mem)
Bezieht sich auf

SuSE Linux: Version 7.3,7.2
XFree86: Version 4.1.0
KDE: Version 2.2.x

Symptom

Der X-Window Server verbraucht immer mehr Speicher während des Betriebs bis kein Speicher mehr vorhanden ist und der Kernel beendet dann Prozesse (letztendlich auch den X-Server) um das System zu schützen.

Dadurch stürzt die grafische Oberfläche beim arbeiten unter KDE nach einiger Zeit ab.

Ursache

Es scheint sich um einen Bug in der Rendering-Engine von Xfree86-4.1.0 zu handeln. Er tritt nur in Erscheinung wenn Antialiasing (Kantenglättung) für Schriften und Icons benutzt wird. Dieses wird im KDE-Kontrollzentrum unter Erscheinungsbild beim Menüpunkt Schriften:Kantenglättung (Anti-Aliasing) für Schriften angeschaltet. Das Problem besteht nur bei einigen Videotreibern.

Bin ich betroffen?:

Um festzustellen ob Ihr System von diesem Bug betroffen ist benutzen Sie große Hintergrundbilder für Ihre virtuellen Desktops und beobachten Sie den Speicherverbrauch des X-Servers. Sie können dazu z.B. das Programm top in einer Textkonsole benutzen. Drücken Sie Umschalttaste (Shift) + M nachdem Sie top gestartet haben um die Prozesse nach ihrem Speicherverbrauch zu sortieren. Sie sehen eine Ausgabe wie:

PID USER     PRI  NI  SIZE  RSS SHARE STAT LC %CPU %MEM   TIME COMMAND
3241 root      9   0 87580  37M  1868   R   0  0.0 14.8   5:52    X   

Der Wert 87580 ist der Speicher den Ihr X-Window System zusammen mit dem dazugehörig abgebildeten Speicher Ihrer Grafikkarte benutzt. Der Wert 37M zeigt die Menge an Speicher die aktuell im physikalischen RAM ist und vom X11 Server verwendet wird (der Teil der auch von Programmen mitbenutzt wird).

Wenn Sie nun zwischen den verschiedenen Desktops wechseln und das neue Hintergrundbild gezeichnet wird, können Sie sehen das der Speicherverbrauch des X11 Systems ansteigt. Wenn dieser Anstieg geringfügig (im hundert KB Bereich) ist und nach einigen Desktopwechseln aufhört anzusteigen ist alles in Ordnung.

Wenn der angezeigte Speicherbedarf dagegen im Megabyte Bereich ansteigt und auch nach einigen Desktopwechseln nicht aufhört, ist Ihr System von diesem Bug betroffen. Drücken Sie q um top zu beenden.

Lösung

Schalten Sie Anti-Aliasing für Schriften im KDE Kontrollzentrum aus.

Alternative Lösung für erfahrene Anwender:

Installieren Sie die Version XFree86-4.2.0 in welcher dieser Bug gefixt wurde. Beachten Sie das dies nicht trivial ist und daher nur erfahrenen Anwendern empfohlen wird.

Sie finden die benötigten RPMs bei:

ftp://ftp.suse.com/pub/suse/i386/supplementary/X/XFree86/XFree86-4.2.0-SuSE/ (US)

oder

ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/supplementary/X/XFree86/XFree86-4.2.0-SuSE/ (Europe)

Bitte beachten Sie das die o. g. Pakete zur Zeit nur für Testzwecke bereitstehen und nicht intensiv auf Fehler geprüft wurden wie die Pakete in unserer Distribution. Das Updaten geschieht also auf eigenes Risiko.

Installation (beachten Sie bitte das sich die Versionsangaben, der Aktualität wegen, schnell ändern können):

  1. Download aller RPMs, auch die aus den sax2 und DRI Verzeichnissen.
  2. Wechseln in runlevel 3: Beenden Sie KDE/X11, wechseln Sie zu einer Textkonsole (Strg-Alt-F1), als root anmelden und init 3 eingeben.
  3. Stellen Sie sicher das Ihre /usr Partition schreibenden Zugriff hat. Wenn Sie sie read-only gemountet haben, geben Sie mount -o remount,rw /usr ein.
  4. Installieren Sie die X11 Pakete:(beachten Sie das Sie evtl. die Versionsnummern in Anlehnung an die aktuell heruntergeladenen Versionen anpassen müssen
  5.    
            rpm -Uhv xf86-4.2.0-2.i386.rpm 
            rpm -Uhv xshared-4.2.0-2.i386.rpm 
            rpm -Uhv XFree86-compat-libs-4.2.0-2.i386.rpm
            rpm -Uhv xloader-4.2.0-2.i386.rpm 
            rpm -Uhv xmodules-4.2.0-2.i386.rpm
            rpm -Uhv xf86tools-0.1-146.i386.rpm
            rpm -Uhv xfntscl-4.2.0-2.i386.rpm
            rpm -Uhv xdevel-4.2.0-2.i386.rpm 
            rpm -Uhv xf86_glx-4.2.0-2.i386.rpm
            rpm -Uhv xman-4.2.0-2.i386.rpm
            rpm -Uhv sax2-4.3-292.i386.rpm 
            rpm -Uhv saxident-1.1-48.i386.rpm
    

    und so weiter...

    (Das Paket xf86tools beinhaltet XftConfig ohne welches das Antialiasing nicht funktionieren wird!)

    Bei der obigen Methode wird vorausgesetzt das die heruntergeladenen RPMs sich im aktuellen Arbeitsverzeichnis des Administrators befinden. Sollte das nicht der Fall sein wechseln Sie bitte mit cd in dieses oder geben Sie volle Pfade an. Stellen Sie fest welche Pakete Sie installiert haben mit rpm -q PAKETNAME wobei Sie für PAKETNAME die Dateinamen benutzen die Sie heruntergeladen haben ohne die -4.2.0-2.386.rpm Endung. Diese sollten Sie auch mit rpm -Uhv updaten.

  6. Nachdem alle Pakete installiert wurden möchten Sie vielleicht Ihre /usr Partition wieder readonly mounten, wenn Sie vorher auch so gemountet war: mount -o remount,ro /usr Beachten Sie dass das fehlschlagen kann da evtl. Prozesse laufen die die alte libX11 Shared Bibliothek benutzen. Ignorieren Sie dieses oder rebooten Sie den Rechner. (Stattdessen können Sie auch mit lsof versuchen herauszufinden welche Prozesse das sind; diese dann re-starten; und dann nocheinmal versuchen /usr readonly zu mounten)
  7. Kehren Sie zu runlevel 5 zurück: init 5

Beachten Sie auch die README Datei in:

ftp://ftp.suse.com/pub/suse/i386/supplementary/X/XFree86/XFree86-4.2.0-SuSE/README

für weitere detaillierte Informationen.

Beachten Sie bitte das wir für die o. g. Vorgehensweise für erfahrene Anwender keinen kostenlosen Installationssupport bieten.


Stichwörter: MEMORY, X11, XFREE, 410, CRASH, SLOW, SERVER, FONTS, X11, MEMORY LEAK, ANTI-ALIASING, KDE, VM, KILLING PROCESS, OUT OF MEMORY, OOM, CRASH

Kategorien: X-Server

SDB-pohletz_x11_consuming_mem, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 30. Jan 2002
SuSE Linux AG - Zuletzt generiert: 31. Jan 2002 von pohletz (sdb_gen 1.40.0)