Mailinglist Archive: opensuse-de (5757 mails)

< Previous Next >
Re: Speicherfresser - was tun ?
  • From: B.Brodesser@xxxxxxxxxxx (Bernd Brodesser)
  • Date: Fri, 4 Oct 2002 05:50:36 +0200
  • Message-id: <20021004035036.GA1963@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Hallo,

* Siegfried Janutta schrieb am 03.Okt.2002:

> AT, Pentium II Cerelon 300 (66er), 128 (98) MB SDRAM,
> 20 GB HDD, Win98 uam, auf 9 GB HDD dann SuSE 8.0,
> Kde 3.01, Openoffice 1.0, Netscape 6.23 uam
>
> Da liegt es schon nahe, etwas zu machen. Aber was.
> Große Leistungen muss ich mit der Kiste nicht vollbringen.
>
> Mit "top" und mit der "Systemüberwachung" habe ich mir
> folgende Angaben besorgt (bezogen auf meinen PC):
>
> 1) Wenn 72 Prozesse laufen (davon 69 schlafend) und auf unter-

Bedeutet gar nichts. Wenn Du nur ein Prozessor hast, so kann nur ein
Prozeß zur Zeit laufen. Er ist im Zustand R, nach einiger Zeit
übernimmt der Kernel den Prozessor, (etwa durch den Clock-Interupt)
und der wird aller Wahrscheinlichkeit nach einen anderen Prozeß zum
laufenden Prozeß machen, wärend er den ersten im Zustand S versetzt.
Wenn ein Prozeß freiwillig an den Kernel übergibt, durch einen
Systemaufruf, so wird dieser Prozeß in den Zustand D gesetzt.
Allerdings erledigt der Kernel seine Aufgabe normalerweise sofort,
so daß der Prozeß wieder im Zustand R oder wahrscheinlicher S
versetzt werden kann.

Wenn Du mehr als einen Prozeß hast, der sich im Zustand R befindet,
so liegt es daran, daß top schon eine Zeile eingelesen hat, und dann
von Kernel unterbrochen wird, bevor die nächste gelesen wird.

> schiedlichen Arbeitsflächen folgende Programme gestartet sind:
> "SuSE, Kde, Konqueror, OO, Netscape, Modem",
> dann weist "top" unter anderem aus für
>
> Mem av = 94.596,
> Mem used = 92.464,
> Mem free = 2.132

Und wieviel Mem cached? Das kanst Du nämlich getrost zu free
schlagen. Mag sein, daß Speicherplatz nicht mehr so teuer ist, aber
teuer genug, daß er nicht unbenutzt daliegen sollte. Linux nutzt
ihm, und zwar indem es die Daten nicht sofort auf Platte schreibt,
sondern erst im Cache zwichenspeichert.

Die mittlere Zugriffszeit auf Hauptspeicher ist Millionenfach
schneller als die mittlere Zugriffszeit auf Platte. (ns gegenüber
ms) Der Hauptanteil der mittleren Zugriffszeit auf Platte hat die
Positionierung des Schreibkopfes. Daher ist es Sinnvoll, Daten
zuerst im Hauptspeicher zu schreiben, und erst dann auf Platte, wenn
der Schreibkopf da ist, wo hingeschrieben werden soll.

Kann man sich vorstellen, wie bei einem Aufzug. Ganz, ganz früher
war es mal so, daß wenn man im Erdgeschoß einstieg und zum dritten
Stock wollte, so fuhr der Aufzug bis zum dritten Stock durch und es
interessierte ihm nicht, daß im zweiten Stock noch jemand stand. Der
wurde erst abgeholt, nachdem er im dritten Stock war. Sinnvoller ist
es doch, daß der Aufzug auch im zweiten Stock hält und noch jemand
mitnimmt, und dann im dritten um den ersten aussteigen zu lassen.

So macht es auch Linux. Wenn irgendwas auf Platte geschrieben werden
soll, dann wird nicht erst gewartet, bis das vorherige auf Platte
geschrieben ist, sondern es wird einfach im Cache geschrieben. Und
wenn dann der Schreibkopf auf der Stelle sich befindet, wo es auf
Platte gelangen soll, so wird es auf Platte übertragen. Daher sind
Kopiervorgänge bei Linux so schnell, und daher ist es nicht ganz so
wichtig, ob eine Partition fragmentiert ist, oder nicht.

Das heißt allerdings auch nicht, daß das Schreiben millionenfach
schneller vonstatten geht, denn auf Platte muß immer noch
geschrieben werden, und auch im günstigsten Falle, also wenn der
betreffende Sektor sich gerade unter dem Schreibkopf befindet,
dauert es, verglichen zum Arbeitsspeicherzugriff, noch sehr lange.

> cpu user = 7,3
> cpu system = 4,2
> idle = 88,5
>
> X = 12,3 %Mem
> soffice.bin = 17,0 %Mem
> Mozilla-bin = 18,0 %Mem,
> Kdeinit = 3,1 %Mem, und Kdeinit = 9,6 % Mem
> appletproxy = 5,2 %Mem, und appletproxy = 2,0 %Mem,
> top = 1,0 %Mem
>
> 2) Bei vorgenannten Zahlenwerten weist die Systemüberwachung
> u.a. aus
> für Zwischenspeicher ca. 55.000 KB
> für benutzter Speicher ca. 92.000 KB
>
> 3) Wenn OO und Netscape geschlossen werden, sinkt der
> Zwischenspeicher vorübergehend auf ca. 38.000 - 40.000 KB.

OO und Netscape sind Speicherfresser.

> Der benutzte Speicher sinkt aber nur kurzfristig und
> steht danach auch ohne OO und nc genau da, wo er auch
> mit OO und nc liegt.

Der Cache erhält mehr Speicher.

> 8) Wird die grafische Oberfläche (Kde) verlassen und
> "init 3" gestartet (Textconsole) gibt "top" u.a. aus:
> used Mem = 65.468, cpu 96 % idle, 32 Prozesse, 31 sleeping)

Mit init 3 verläßt Du nicht die graphische Oberfläche, das machst
Du, indem Du z.B ALT-CTRL-F1 eingibst. Mit init 3 veränderst Du das
Runlevel, und beendest damit X und alle Unterprozesse, wenn Du X
nicht mittels startx oder ähnlichem aufgerufen hast.

> Wird stattdessen "init 1" gestartet, gibt "top" u.a. aus:
> used Mem = 66.344, 9 Prozesse, (8 sleeping)

Runlevel 1 ist der Singelusermode. Da werden sehr viele Prozesse
nicht benötigt, die normalerweise zur Multiuserbenutzung gebraucht
werden. Außerdem stehen Dir das Netzwerk nicht zur Verfügung.

> B) Wenn z.B. bei mir die CPU nur mit max 20 % ausgelastet sind,
> aber der Arbeitsspeicher nicht reicht, was sollte ich tun ? Dann brauche
> ich doch keine Giga CPUs, oder ?

Generell bringt bei Linux mehr Arbeitsspeicher mehr als schnellere
CPU.

> D) Wenn auf "init 1" noch 1 Prozess läuft, und der 66 MB
> Arbeitsspeicher braucht, wo ist geschrieben, wer da den
> Speicherbedarf hat ?

Ich vermute mal sehr stark der Cache.

> Warum werden in"init 3" weniger MB als mit "init 1" gebraucht?

Zufall. Wird beim nächsten mal sicherlich anders sein.

> Abschließend meine ich, dass obige Angaben auch deutlich werden
> lassen, dass Kde nicht der böse Bube ist, wie bisher hier in der
> Liste behauptet wurde.

Es gibt eine Menge KDE-Anwendungen. Die mußt Du schon alle
zusammennehmen. Und Du mußt den Cache beachten. Der friest zwar sehr
viel Speicherplatz, aber immer nur, soviel er zur Verfügung hat.
Wird mehr benötigt, so wird auch mehr Cache freigegeben. Das heißt,
es ist noch viel einfacher: es wird nur Cache belegt, wenn noch
freier Speicherplatz vorhanden ist. Ansonsten muß halt solange
gewartet werden, bis der Schreibkopf richtig positioniert ist.


Bernd

--
ROTFL = Rolling On The Floor, Laughing = Auf dem Boden wälzen, lachend.
SCNR = Sorry, Could Not Resist = Sorry, Ich konte nicht wiederstehen.
AFAIK = As Far As I Know = So weit ich weis|BTW = By The Way = Nebenbei bemerkt
IMHO = In My Humble Opinion = meiner bescheidenen Meinung nach |Zufallssig. 9

< Previous Next >
Follow Ups
References