Aus EasyLinux 04/2008

Programme mit top, ps, kill, pidof, nice, renice steuern

Prozesse im Griff

OpenOffice hängt – jetzt heißt es, schnell das Programm abzuschießen, bevor der Speicher voll läuft und das System unbenutzbar wird. Am schnellsten geht es auf der Shell.

Stabilität ist einer der Punkte, der Linux zu Zeiten von Windows 95 populär gemacht hat. Eine der Gründe dafür ist, dass Linux alle laufenden Programme (die „Prozesse“ heißen) sauber voneinander trennt, so dass eine fehlerhaft programmierte Anwendung beim Absturz keine weiteren Programme oder gar das ganze System mit in den Abgrund reißen kann. Als Multitasking-Betriebssystem kann Linux nahezu beliebig viele Programme parallel ausführen; mit wachsender Prozesszahl wird das Gesamtsystem nur immer langsamer.

Jedes Programm, das Sie starten, wird zu einem Prozess; läuft dasselbe Programm mehrmals, gibt es auch mehrere Prozesse. Die Prozesse sind voneinander unabhängig und belegen unter anderem Speicher und CPU-Zeit.

Prozessmanager

Die grafischen Oberflächen wie KDE und Gnome bringen GUI-Tools für die Prozessüberwachung und -steuerung mit, unter KDE etwa der Performance-Monitor (ksysguard) und unter Gnome der GNOME-Systemmonitor (gnome-system-monitor). Arbeiten Sie unter KDE mit den Standardeinstellungen, gibt es für das KDE-Tool sogar eine Tastenkombination: [Strg]+[Esc] ruft das Tool auf und zeigt direkt die Prozessliste an (Abbildung 1).

Abbildung 1: Die Prozesse präsentiert der KDE-Performance-Monitor in einer grafischen Übersicht.
Abbildung 1: Die Prozesse präsentiert der KDE-Performance-Monitor in einer grafischen Übersicht.

Über diese grafischen Tools erhalten Sie nicht nur eine Übersicht, sondern können die laufenden Prozesse auch beeinflussen – etwa mehr oder weniger gewaltsam abbrechen. (Es gibt tatsächlich zwei Abbruchvarianten, von denen eine vorsichtiger aber nicht immer erfolgreich ist.)

Traditionell steuern Sie die Prozesse aber über Shell-Befehle, und wie es für Artikel im Guru-Training üblich ist, erreichen Sie Ihre Ziele in der Shell häufig schneller. Im Folgenden stellen wir Ihnen die wichtigsten Kommandos vor, mit denen Sie die Prozessliste betrachten und einzelne laufende Programme im Detail beeinflussen können: Dazu zählt nicht nur der Programmabbruch, sondern es sind auch Pausen und das Schneller- oder Langsamermachen möglich.

Der den Speicher frisst

Manche Programme belegen sehr viel Speicher – und mit zunehmender Laufzeit immer mehr. Typische Vertreter dieser speicherhungrigen Art sind Browser wie Mozilla, Firefox und Opera: Sie laden z. B. häufig Plug-ins für Flash- oder sonstige multimediale Inhalte in den Speicher. Gerade Plug-ins sind oft problematisch, zumal sie gelegentlich den Browser zum Einfrieren bringen.

Mit dem Tool top werfen Sie einen Blick auf die größen Speicherfresser. Dazu öffnen Sie zunächst ein Terminalfenster, maximieren es und geben dann den Befehl top ein. Nach dem Programmstart zeigt top eine Liste von Prozessen an und aktualisiert diese ständig – es sortiert allerdings zunächst nach der prozentualen CPU-Nutzung (Spalte %CPU). Das ändern Sie wie folgt: Drücken Sie nacheinander [Umschalt]+[O],[O] und [Eingabe]:

  • Die erste Tastenkombination [Umschalt]+[O] ruft den Dialog auf, in dem Sie das Sortierfeld einstellen.
  • Ein kleines „o“, also [O], wählt hier das Feld VIRT aus, das den gesamten vom Programm verwendeten virtuellen Speicher enthält.
  • Mit [Eingabe] kehren Sie schließlich zur Prozessliste zurück.

Danach sieht die Anzeige wie in Abbildung 2 aus. Wichtig ist hier die rot hervorgehobene Spalte VIRT, die anzeigt, wie viel virtuellen Speicher die Prozesse verbrauchen. Ganz oben in der Liste stehen in diesem Beispiele die Prozesse opera und beagled (ein Hintergrundprogramm, das für die Desktop-Suchmaschine Beagle nach neuen Dateien sucht).

Abbildung 2: Sortieren Sie in "top" nach Speicherverbrauch, erkennen Sie auf einen Blick die größten Speicherfresser.
Abbildung 2: Sortieren Sie in „top“ nach Speicherverbrauch, erkennen Sie auf einen Blick die größten Speicherfresser.

Wenn der Rechner ständig auf die Festplatte zugreift, ist der Hauptspeicher knapp geworden: Linux „swappt“, das heißt: Es lagert Speicherbereiche einzelner Prozesse auf die Platte aus, um wieder Platz zur Verfügung zu haben. Will ein Programm dann weiterarbeiten und derart ausgelagerte Daten nutzen, müssen diese aus der Platte wieder ins RAM geladen werden – wofür das System aber erneut Platz freischaufeln muss. So entsteht, wenn Sie insgesamt zu viele Prozesse (mit zu großem Speicherbedarf) ausführen, ein Kreislauf, in dem Linux permanent Daten zwischen Platte und RAM hin und her bewegt.

Das Problem können Sie nur beheben, indem Sie einzelne Programme (am besten solche, die viel Speicher verbrauchen) schließen. Tritt die Situation ständig auf, sollten Sie überlegen, einen zusätzlichen Speicherriegel einzubauen. Die Übersicht in top sagt Ihnen nun, welche Programme Sie beenden sollten, um die größte Menge Speicher wieder freizugeben.

Mach mal Pause

Gelegentlich reicht es auch aus, ein ressourcenfressendes Programm vorübergehend zu unterbrechen – dabei ist es egal, ob diese Anwendung vor allem Rechenzeit oder Speicher beansprucht: Hat sie einmal angehalten, kann Linux den Prozessspeicher auf Platte auslagern und wird ihn nicht wieder anfordern, bis Sie das Programm reaktivieren. Das Swappen hört dann schnell auf.

Ein Blick in die Prozessliste verrät Ihnen, wie alle Prozesse heißen und welche Prozess-IDs (PID) sie haben: Diese IDs sind eindeutige Nummern, anhand derer Linux (und auch Sie) die Prozesse voneinander unterscheiden können. In der Übersicht des Programms top stehen die PIDs in der ersten Spalte, die Namen in der letzten. Taucht das Programm dort nicht auf (die Liste ist ja nicht vollständig), betrachten Sie mit dem Kommando ps die vollständige Liste. Am besten leiten Sie die Ausgabe über | less in einen Pager und verwenden die ps-Parameter ux (ohne einleitendes Minuszeichen), um alle (eigenen) Prozesse zu sehen:

EasyLinux 04/2008 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: