* On Fri, 13 Sep 2002 at 12:48 +0200, Klein, Martin Willy wrote:
wir haben hier ein Linux SLES 7 in einer LPAR auf unserer zSerie installiert. Die wesentliche Anwendung in dieser LPAR ist ein SAMBA-Server, der als Fileserver und PDC für ca. 400 Windows-PCs in unserem Netzwerk dient.
Da wir Probleme mit der Performance hatten, habe ich ein kleines Shellskript geschrieben, das 10-minütig läuft und Daten über die Nutzung des Hauptspeichers, des Swapspaces, der CPU-Auslastung und über die Anzahl der offenen Dateien im System sammelt.
Aus diesen Daten geht folgendes hervor:
- Speicher: Unser System hat ca. 1,5 Giga Hauptspeicher und ca 2 Giga Swap. Nach einem Reboot des Systems werden die 1,5 Giga Hauptspeicher sukzessive angezogen, bis nur noch ca. 2 Mega frei sind. Der Swap wird jedoch so gut wie nicht genutzt - gerade mal ca. 8 Mega (!!!) sind im Zurgriff.
Ist vollkommen okay. Der freie Speicher wird als Cache benutzt und aufgefüllt, bis nur mehr die beschriebenen 2 MB frei sind[1].
- offene Dateien: zu Spitzenzeiten haben wir ca. 17000 offene Dateien im System, davon ca. 16000, die vom Samba geöffnet sind.
Sieht okay aus.
- Die CPU-Belastung ist eigentlich sehr gering. Wenn die CPU-Last kurzfristig steigt, ist es auffälligerweise immer nur der sys-Anteil, der mal auf 30 bis 40 Prozent hochgeht - manchmal sogar auf 100 Prozent -, wobei der usr-Anteil fast immer unter 5 Prozent bleibt.
Ebenfalls.
Nach dieser etwas längeren Einführung komme ich jetzt zu dem eigentlich Problem:
Wenn der oben beschriebene Zustand beim Speicher ( Hauptspeicher völlig aufgebraucht, Swap wird nicht benutzt) erreicht ist, ändert sich daran so gut wie nichts mehr: wenn die Last im System im Laufe des Nachmittags runter geht, wird kein Hauptspeicher freigegeben, und selbst als ich den SAMBA gestoppt habe, wurden gerade mal ca. 200 Mega frei.
Dann kannst Du davon ausgehen, daß ca. diese 200 MB von Samba belegt wurden, die restlichen 1,3 GB werden zu einem Großteil wohl als Cache genutzt.
Umgekehrt ist es aber auch so, daß der Swap nicht genutzt wird: ich mußte die Anzahl der offenen Dateien im System vom Default erhöhen auf 20.000, was der Theorie zufolge auch zu einem erhöhten Verbrauch an Speicher hätte führen müssen - in unserem Falle eben dazu, daß spätestens nach der Erhöhung von file-max der Swap genutzt wird und das System anfängt zu pagen; beides ist jedoch nicht passiert.
Nein, da werden unbelegte Seiten aus dem Cache freigegeben. Abgesehen davon sieht man IIRC den Effekt aus dem Erhöhen der maximal offenen Files nicht sofort, sondern erst, wenn die auch tatsächlich geöffnet werden.
(Ich vermute mal, daß damit irgendwie auch der hohe sys-Anteil an der CPU-Nutzung zusammenhängt)
Hat hier irgend jemand eine Erklärung oder eine Idee?
Ich sehe hier kein wirkliches Problem. Sieh Dir doch mal die Ausgabe von free an: ,----[ adalbert@leo:~ > free ]- | total used free shared buffers cached | Mem: 515456 510212 5244 0 64736 287696 | -/+ buffers/cache: 157780 357676 | Swap: 787176 0 787176 `---- Total sind 512 MB vorhaden, davon fast alles benutzt - ca. 63 MB für Buffer, ca. 280 MB für Cache. Wirklich benutzt (von Programmen) sind nur die 154 MB, die bei "-/+ buffers/cache" angeführt sind, knappe 350 MB sind "frei". Swap ist ebenfalls nur zur Zierde da. [1] Wieviel frei bleiben soll, lässt sich in /proc/sys/vm/* einstellen, siehe dazu /usr/src/linux/Doc*/systcl/vm.txt -- Adalbert PGP welcome, request public key: mailto:adalbert+key@lopez.at