Hallo Liste! Ist es möglich, die ausgelagerten Daten auf einen Befehl (oder über /proc) in den Hauptspeicher zu laden. Ich habe auf meinem System folgendes beobachtet: Rechner mit 192 MB RAM, viele Applikation z.T. wochenlang offen. Nun werden immer diejenigen Daten von Applikationen, die längere Zeit nicht benutzt wurden, ausgelagert, was ja an sich vernünftig ist. Tatsächlich arbeite ich jedoch häufig mit Anwendungen, die an sich garnicht viel Speicher benötigen, so daß es eher hinderlich ist, wenn zu viel ausgelagert wird. Nach einer gewissen Zeit ist der Wechsel zwischen Applikationen immer von einem Rödeln der Festplatte begleitet und kostet mich Nerven. Im Augenblick sind beispielsweise 88 MB Daten geswapt, während nahezu keine speicheraufwendigen Vorgänge auf dem Rechner laufen. Bei 192 MB ist das ein unnötiges Verhalten. Daher, wie gesagt, würde ich gerne von Zeit zu Zeit die geswapten Daten, wo weit möglich, wieder in den Hauptspeicher laden. Ist das möglich? Vielen Dank für Hinweise. Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo, Matthias Kleine wrote:
Tatsächlich arbeite ich jedoch häufig mit Anwendungen, die an sich garnicht viel Speicher benötigen, so daß es eher hinderlich ist, wenn zu viel ausgelagert wird. Nach einer gewissen Zeit ist der Wechsel zwischen Applikationen immer von einem Rödeln der Festplatte begleitet und kostet mich Nerven. Im Augenblick sind beispielsweise 88 MB Daten geswapt, während nahezu keine speicheraufwendigen Vorgänge auf dem Rechner laufen. Bei 192 MB ist das ein unnötiges Verhalten.
Daher, wie gesagt, würde ich gerne von Zeit zu Zeit die geswapten Daten, wo weit möglich, wieder in den Hauptspeicher laden. Ist das möglich?
Hmmm, evtl. reicht schon ein 'swapoff /dev/[irgendwas]' mit einem anschließenden 'swapon /dev/[irgendwas]' Kann dir aber nichts versprechen, ob das was bringt oder schlimmer noch irgendwelche unerwünschte Auswirkungen hat... cu flo -- Pascal - A programming language named after a man who would turn over in his grave if he knew about it. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Matthias Kleine schrieb in 1,3K (34 Zeilen):
Ist es möglich, die ausgelagerten Daten auf einen Befehl (oder über /proc) in den Hauptspeicher zu laden.
Nicht in dem Sinne, wie du es willst. Du koenntest natuerlich die Prioritaet fuer Cache & co im Kernel runterdrehen.
Tatsächlich arbeite ich jedoch häufig mit Anwendungen, die an sich garnicht viel Speicher benötigen, so daß es eher hinderlich ist, wenn zu viel ausgelagert wird.
Diese werden auch nuir dann ausgelagert, wenn der Platz besser als Plattencache benutzt wird. Mit mlock und mlockall kannst du natuerlich die Applikation zwangsweise im Speicher halten.
Nach einer gewissen Zeit ist der Wechsel zwischen Applikationen immer von einem Rödeln der Festplatte begleitet und kostet mich Nerven. Im Augenblick sind beispielsweise 88 MB Daten geswapt, während nahezu keine speicheraufwendigen Vorgänge auf dem Rechner laufen. Bei 192 MB ist das ein unnötiges Verhalten.
Speicher == Programcode + Daten + Buffer + Cache ... -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Wolfgang Weisselberg schrieb am 01.Jun.2000:
Matthias Kleine schrieb in 1,3K (34 Zeilen):
Nach einer gewissen Zeit ist der Wechsel zwischen Applikationen immer von einem Rödeln der Festplatte begleitet und kostet mich Nerven. Im Augenblick sind beispielsweise 88 MB Daten geswapt, während nahezu keine speicheraufwendigen Vorgänge auf dem Rechner laufen. Bei 192 MB ist das ein unnötiges Verhalten.
Speicher == Programcode + Daten + Buffer + Cache ...
Das ist wohl so, aber trotzdem, Matthias hat recht. Wenn man eine Zeitlang mit KDE und Netscape gearbeitet hat fängt Linux an zu swapen. Natürlich dauert dann alles viel länger. Selbst wenn man dann die meisten Prozesse zurückfährt swapt Linux weiter. Wie kommt das? Nach dem booten kommen die gleiche Prozesse ohne swapen aus. Wird erst mal ausgelagert, so kommt es zu ständigen Plattenzugriffe, selbst wenn man nur noch wenige Prozesse laufen hat. Selbst ein runterfahren des X-Servers bringt es nicht. Ich habe übrigens Kernel 2.2.13 Ich hoffe mit Kernel 2.4 wird da was besser. Bernd -- Homepages von deutschsprachigen Linux-Gurus: Kristian Köhntopp: http://www.koehntopp.de/kris/artikel/ Sven Guckes: http://www.math.fu-berlin.de/~guckes/sven Robin S Socha: http://socha.net/index2.html |Zufallssignatur 10 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Don, 01 Jun 2000 schrieb Wolfgang Weisselberg:
Speicher == Programcode + Daten + Buffer + Cache ...
Rückfrage: Mir ist der Unterschied zwischen Buffer und Cache nicht klar. Kannst Du mir das näher erläutern? Vielen Dank, Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de SelfLinux Beta-Release auf dem LinuxTag - am Stand der PingoS! --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Don, 01 Jun 2000 schrieb Bernd Brodesser:
Das ist wohl so, aber trotzdem, Matthias hat recht. Wenn man eine Zeitlang mit KDE und Netscape gearbeitet hat fängt Linux an zu swapen. Natürlich dauert dann alles viel länger.
Selbst wenn man dann die meisten Prozesse zurückfährt swapt Linux weiter. Wie kommt das? Nach dem booten kommen die gleiche Prozesse ohne swapen aus. Wird erst mal ausgelagert, so kommt es zu ständigen Plattenzugriffe, selbst wenn man nur noch wenige Prozesse laufen hat.
Selbst ein runterfahren des X-Servers bringt es nicht. Ich habe übrigens Kernel 2.2.13
Das ist genau die Beobachtung. Die Swapping-Mechanismen sind im Grunde nicht für einen Workstation-Betrieb konfiguriert. Ich vermute, daß der Kernel defaultmäßig mit Einstellungen arbeitet, die für Server sinnvoll sind, die aber bei einer stunden- bis tagelangen Nutzung als Workstation eher störend wirken. - Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de SelfLinux Beta-Release auf dem LinuxTag - am Stand der PingoS! --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Matthias Kleine schrieb am 01.Jun.2000:
Das ist genau die Beobachtung. Die Swapping-Mechanismen sind im Grunde nicht f?r einen Workstation-Betrieb konfiguriert. Ich vermute, da? der Kernel defaultm??ig mit Einstellungen arbeitet, die f?r Server sinnvoll sind, die aber bei einer stunden- bis tagelangen Nutzung als Workstation eher st?rend wirken.
Das würde ich nicht so sehen. Ich wüßte nicht, wo der Unterschied sein soll. Auch bei einem Server kann es mal mächtig viel zu tun geben. Wenn es dann wieder ruhiger wird, so muß die Aktivitäten gerade hier wieder schneller werden. Bernd -- Welches Buch ist zu empfehlen? Schon mal bei SuSE vorbeigesehen? http://www.suse.de/de/produkte/buecher/index.html oder die Empfehlungen der SuSE-Entwickler auf dem eigenen Rechner? file:///usr/doc/sdb/de/html/literatur.html |Zufallssignatur 5 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Don, 01 Jun 2000 schrieb Bernd Brodesser:
Das ist genau die Beobachtung. Die Swapping-Mechanismen sind im Grunde nicht f?r einen Workstation-Betrieb konfiguriert. Ich vermute, da? der Kernel defaultm??ig mit Einstellungen arbeitet, die f?r Server sinnvoll sind, die aber bei einer stunden- bis tagelangen Nutzung als Workstation eher st?rend wirken.
Das würde ich nicht so sehen. Ich wüßte nicht, wo der Unterschied sein soll. Auch bei einem Server kann es mal mächtig viel zu tun geben. Wenn es dann wieder ruhiger wird, so muß die Aktivitäten gerade hier wieder schneller werden.
Auf einer Workstation ist es typisch, daß viele Applikationen für geraume Zeit schlafen gehen, während der User sich mit nur einer einzigen Applikation beschäftigt, die nur einen kleinen Teil der Ressourcen benötigt (z.B. einen Text editieren). Wenn z.B. die Zeit der letzten Verwendung als Maßstab verwendet wird, ob Daten ausgelagert werden sollen oder nicht, kann das auf einer Workstation ungünstig sein, denn auch wenn ich Netscape vielleicht 2 Stunden nicht mehr verwendet habe, möchte ich ihn doch im Falle eines Falles sofort verwenden können, ohne daß erst viele Daten aus dem Swap geholt werden müssen. Bei einem Server sind zum einen die Daten pro Applikation nicht so umfangreich wie bei GUI's, zweitens kommt es eher selten vor, daß ein Dienst über mehrere Stunden nicht verlangt wird - und wenn, dann erscheint die Auslagerung auch gerechtfertigt. Programmdaten, die stundenlang nicht mehr benutzt wurden, werden vermutlich überhaupt nicht mehr benutzt. Auch wenn das vielleicht etwas übertrieben formuliert ist - ich will damit nur den Unterschied zur typischen Workstation-Verwendung aufzeigen. Ich bitte um zahlreiche Widersprüche (am Thema Swap scheiden sich häufig die Geister ;-), aber besser noch um Erfahrungsberichte oder Lösungsvorschläge (ich bin gerade dabei, mit einigen /proc Einstellungen zu experimentieren, vielleicht hat hier schonmal jemand Vorarbeit geleitstet?!). - Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de SelfLinux Beta-Release auf dem LinuxTag - am Stand der PingoS! --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Bernd Brodesser schrieb in 1,5K (38 Zeilen):
* Wolfgang Weisselberg schrieb am 01.Jun.2000:
Speicher == Programcode + Daten + Buffer + Cache ...
Das ist wohl so, aber trotzdem, Matthias hat recht. Wenn man eine Zeitlang mit KDE und Netscape gearbeitet hat fängt Linux an zu swapen. Natürlich dauert dann alles viel länger.
Wenn ich euch richtig verstanden habe: Wenn man mehrere grosse, geg. schlecht lokalisierte Programme lange Zeit auf Linux laufen laesst und z.T. benutzt, dann werden irgendwelche Teile (Welche? was sagt z.B. qps?) ausgeswapped. Vermutung: bdflush/update lagern Teile aus (Code wird direkt aus dem Executable geladen, geht also nicht in den Swap, Daten landen im Swap, Cache/Buffers werden geschrieben if dirty und gepurged). Grund dafuer sind z.B. cron.(daily|weekly|monthly), oder das Lesen/Schreiben grosser Datenmengen.[1] Symptom ware ein Rechner, der am Morgen (bzw. bei erster Benutzung nach Mitternacht) 'viel' Speicher frei hat, aber ueber-'normal' Swap benutzt. Beim Benutzen von Programmen wuerde dann erstmal Swapperei losgehen. [1] Werden diese danach rm'd/umounted/inaccessible, dann wird der vorher benoetigte Cache-Speicher sofort wieder freigegeben. Sort benutzt temporaere Dateien. Klar? Andere Vermutung: Mem ist gut genutzt, und zwar ueberwiegend mit Programcode/daten und/oder shared[2]. In diesem Falle passiert folgendes: Du startest ein neues Programm. Dieses braucht Platz, der ist im Hauptspeicher nicht gegeben, also muss zunaechst Platz geschaffen werden. Um so weniger Buffer/Cache da ist, um so seltener kann davon eine Page gekillt werden und um so eher muss eine Page aus den Programmdaten genommen werden. In der Regel ist aber der Code wesendlich kleiner als die Daten und zudem haeufiger benutzt (der Rest ist eh schon ausgelagert) ... und damit muss ausgeswappt werden. Wenn jetzt dieses Programm diese Daten wieder braucht[3], wird diese Page (die in der Tat lange nicht gebraucht wurde), wieder eingeswappt. [2] nein, /proc/meminfo liefert einen viel zu hohen Wert fuer shared zurueck: jede Shared-Page wird mit der Anzahl der 'links' darauf multipliziert! /proc/memstat's 1Count liefert die KB der non-shared Seiten zurueck, die Differenz ist shared. memstat ist unter /usr/doc/packages/xosview/memstat/ zu finden.) [3] weil es sie ueber seinen ganzen benoetigten Speicher verstreut hat (schlecht lokalisiert), anstatt die wichtigsten an wenigen Orten zu buendeln (gut lokalisiert) In diesem Falle koenne z.B. ein echo "256 512 2560" > /proc/sys/vm/freepages helfen. Der Default sind 256 512 768, IIRC, die Werte sind Pages (i.e. 4k --> 1/2/3MB) und bedeuten 1. Platz fuer atomare Operationen, immer freigehalten 2. Ab hier wird aggressiv geswapped 3. Ab hier wird lazy (im Hintergrund) geswapped. Durch das Erhoehen von 3. wird der Kernel in seiner Freizeit diesen Speicher freimachen (und damit 'verschwenden'), aber fuer Programmstarts ist dann (bei mir) 8 MB sofort zur Verfuegung und 1 weiteres unter schwerem Swappen, statt nur 1 MB + 1 MB.
Selbst wenn man dann die meisten Prozesse zurückfährt swapt Linux weiter.
Bist du dir sicher, dass Linux *swappt*? Oder siehst du nur die Platte roedeln? cron & find koennten das z.B. auch sein! Schliesse mal die speicherhungringen Applikationen (Netscape, GIMP, grosses KDE-Zeugs, ... siehe qps, z.B.). Da muesste zwar erstmal das Roedeln starten (schliesslich ist der Exit-code ausgeswappt!), aber dann *viel* Swap freiwerden.
Wie kommt das? Nach dem booten kommen die gleiche Prozesse ohne swapen aus.
Daten ...
Wird erst mal ausgelagert, so kommt es zu ständigen Plattenzugriffe, selbst wenn man nur noch wenige Prozesse laufen hat.
Welche Prozesse laufen denn? Welche verusachen den Plattenzugriffe? xosview kann neben den Balken auch 'load'-aehnliche Graphiken fuer CPU, Mem, Swap, Disk, ... anzeigen (braucht halt mehr Platz). Das kann sehr aufschlussreich sein! Im Uebrigen ist klar, dass ein Engpass sich selber verschlimmern kann: Stell dir eine Supermarktkasse vor, die ca 100 Leute pro Stunde abarbeiten kann, und es kommen ca 80/h. Jetzt kommen auf einen Schub 200. Selbst wenn du dann es auf 10/h drosselst, ist die Kasse erstmal 2 1/4 Stunden gut ausgelastet! -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Matthias Kleine wrote:
Am Don, 01 Jun 2000 schrieb Bernd Brodesser:
Das ist genau die Beobachtung. Die Swapping-Mechanismen sind im Grunde nicht f?r einen Workstation-Betrieb konfiguriert. Ich vermute, da? der Kernel defaultm??ig mit Einstellungen arbeitet, die f?r Server sinnvoll sind, die aber bei einer stunden- bis tagelangen Nutzung als Workstation eher st?rend wirken.
Das würde ich nicht so sehen. Ich wüßte nicht, wo der Unterschied sein soll. Auch bei einem Server kann es mal mächtig viel zu tun geben. Wenn es dann wieder ruhiger wird, so muß die Aktivitäten gerade hier wieder schneller werden.
Auf einer Workstation ist es typisch, daß viele Applikationen für geraume Zeit schlafen gehen, während der User sich mit nur einer einzigen Applikation beschäftigt, die nur einen kleinen Teil der Ressourcen benötigt (z.B. einen Text editieren).
Nichts anders tut linux: http://www.linuxdoc.org/LDP/tlk/mm/memory.html
Wenn z.B. die Zeit der letzten Verwendung als Maßstab verwendet wird, ob Daten ausgelagert werden sollen oder nicht, kann das auf einer Workstation ungünstig sein, denn auch wenn ich Netscape vielleicht 2 Stunden nicht mehr verwendet habe, möchte ich ihn doch im Falle eines Falles sofort verwenden können, ohne daß erst viele Daten aus dem Swap geholt werden müssen. Warum sollte ein Prozeß der zwei Stunden nicht mehr benutzt wird im Speicher bleiben und somit dafür sorgen, daß andere Prozesse, die dringend teuren und kostbaren Hauptspeicher benötigen, anfangen zu swappen?
Du solltest auch bedenken, dass Pakete wie KDE und GNOME sehr speicherhungrig sind und ein Umschalten von KDE nach Netscape Umschalten zwischen zwei getrennten GUI-Familien und den damit zusammenhängenden shared-Libs bedeutet. Werden dann auch noch verschiedende KDE/Qt-Versionen parallel geladen, verschlimmert sich die Situtation noch einmal. Ansonsten deuten die von Euch beschriebenen Beobachtungen auf persistente Memory-Leaks hin. Beide, Netscape und KDE sind berühmt-berüchtigt für derartige Probleme. Ralf -- Ralf Corsepius Forschungsinstitut fuer Anwendungsorientierte Wissensverarbeitung (FAW) Helmholtzstr. 16, 89081 Ulm, Germany Tel: +49/731/501-8690 mailto:corsepiu@faw.uni-ulm.de FAX: +49/731/501-999 http://www.faw.uni-ulm.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Matthias Kleine schrieb in 0,5K (19 Zeilen):
Am Don, 01 Jun 2000 schrieb Wolfgang Weisselberg:
Speicher == Programcode + Daten + Buffer + Cache ...
Rückfrage: Mir ist der Unterschied zwischen Buffer und Cache nicht klar. Kannst Du mir das näher erläutern?
Buffer Cache: Speichert Daten (z.B.) der Festplatte zwischen. Da die Blockgroesse in dem Fall 512 Bytes ist, passen 8 Blocks hinein (die ueber eine circulaere linked list notiert sind). Da du immer in Blockgroesse schreiben musst, wird gegebenenfalls hier der Block zusammengebaut ... und natuerlich wird die Information nicht einfach so vergessen. Page Cache: Enthaelt den logischen Inhalt eines Files und wird ueber File & Offset referenziert. Wird beim Lesen angelegt. (Ausschnitte von Memory Mapped Files) Swap Cache: Enthaelt Swap Pages und erlaubt es, 'saubere', wiedereingelesene Swap Pages zu discarden. -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Matthias Kleine schrieb in 2,3K (51 Zeilen):
Wenn z.B. die Zeit der letzten Verwendung als Maßstab verwendet wird, ob Daten ausgelagert werden sollen oder nicht, kann das auf einer Workstation ungünstig sein, denn auch wenn ich Netscape vielleicht 2 Stunden nicht mehr verwendet habe, möchte ich ihn doch im Falle eines Falles sofort verwenden können, ohne daß erst viele Daten aus dem Swap geholt werden müssen.
Das willst du nicht. Und wenn doch -> mlock, mlockall. Und wenn du zeitkritisch arbeiten musst, willst du Netscape eh nicht. Aber schlag doch mal einen Algorithmus fuer 'Workstations' vor.
Bei einem Server sind zum einen die Daten pro Applikation nicht so umfangreich wie bei GUI's,
Was ist ein Server, was ist eine Workstation?
zweitens kommt es eher selten vor, daß ein Dienst über mehrere Stunden nicht verlangt wird
Ich kenne genuegend Rechner, die man als Server ansehen kann und die z.B. telnet oder ssh *lange* nicht verlangt haben.
- und wenn, dann erscheint die Auslagerung auch gerechtfertigt. Programmdaten, die stundenlang nicht mehr benutzt wurden, werden vermutlich überhaupt nicht mehr benutzt.
Eben. Allgemein: Daten, die lange[1] nicht gebraucht wurden, werden ausgelagert. [1] Im Verhaeltnis zu anderen Daten, die den Hauptspeicher nutzen und die Menge des verfuegbaren Hauptspeichers! Zu Daten zaehlen Cache & Buffer & ... dazu.
Auch wenn das vielleicht etwas übertrieben formuliert ist - ich will damit nur den Unterschied zur typischen Workstation-Verwendung aufzeigen.
Die waere? Wenn du "Nur je ein Programm, das bekommt praktisch alles" willst, verweise ich dich auf DOS. Da hast du das. -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Bernd Brodesser wrote:
* Wolfgang Weisselberg schrieb am 01.Jun.2000:
Matthias Kleine schrieb in 1,3K (34 Zeilen):
Nach einer gewissen Zeit ist der Wechsel zwischen Applikationen immer von einem Rödeln der Festplatte begleitet und kostet mich Nerven. Im Augenblick sind beispielsweise 88 MB Daten geswapt, während nahezu keine speicheraufwendigen Vorgänge auf dem Rechner laufen. Bei 192 MB ist das ein unnötiges Verhalten.
Speicher == Programcode + Daten + Buffer + Cache ...
Das ist wohl so, aber trotzdem, Matthias hat recht. Wenn man eine Zeitlang mit KDE und Netscape gearbeitet hat fängt Linux an zu swapen. Natürlich dauert dann alles viel länger.
Selbst wenn man dann die meisten Prozesse zurückfährt swapt Linux weiter. Wie kommt das? Nach dem booten kommen die gleiche Prozesse ohne swapen aus. Wird erst mal ausgelagert, so kommt es zu ständigen Plattenzugriffe, selbst wenn man nur noch wenige Prozesse laufen hat.
Selbst ein runterfahren des X-Servers bringt es nicht. Ich habe übrigens Kernel 2.2.13
Ich hoffe mit Kernel 2.4 wird da was besser.
Hi Bernd, das von dir beschriebene Verhalten tritt bei den Originalkerneln auf. Seit dem SuSE-2.2.14 hat sich das Verhalten komplett geändert. Ich will mal ein Beispiel von meinem Firmenrechner bringen: System: PII450, 256MB RAM, Komplett SCSI, Graka Elsa Gloria Synergy (8MB) SuSE 6.4, KDE Vorher mit Original-Kernel 2.2.15 nach dem Start von KDE und Netscape hatte ich ungefähr 4MB im Swap. Je mehr ich machte, desto mehr hatte ich im Swap. Also SO starten 12 MB im Swap. Seit dem SuSE-2.2.14 Kernel liegen immer nur ein paar 100k im swap. Um eine ordentliche Auslagerung zu erwzingen, musste ich ein paar sehr speicherintensive Programme starten: Netscape -> nix SO -> nix JBuilder 3.5F -> nix (der braucht 167MB RAM) Together 3 -> 2-3MB (in etwa 100MB RAM) Together 3 ein zweites Mal -> siehe da, der Swap funzt doch noch, es lagen dann etwa 40 MB drinnen. dabei liefen vorher schon ein paar Apache-Prozesse mit JServ-Modul Nach 2 Tagen Arbeit (nur ein Together) mit dem Zeug wuchs der Swap dann auf 170 MB an, die Arbeit war deutlich zu spüren. Nach dem Beenden von JBuilder und SO war der Swap wieder leergefegt. Das Problem scheint darin zu bestehen, das einmal als Cache allozierter Speicher nur sehr widerwillig bis gar nicht wieder freigegeben wird. Da das Swappen wahrscheinlich auch noch durch den Cache läuft, ist das auch noch ein Teufelskreis. SuSE scheint da bereits einen Patch integriert zu haben, denn dort ist das Verhalten deutlich reduziert. Machts gut Andreas -- ------------------------------------------------------------------- Andreas Bock registered Linux User #136542 mailto:a_bock@gmx.de ICQ #59734306 ------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Don, 01 Jun 2000 schrieb Wolfgang Weisselberg:
Aber schlag doch mal einen Algorithmus fuer 'Workstations' vor.
Na, wer weiß. Sicher nicht morgen...
Bei einem Server sind zum einen die Daten pro Applikation nicht so umfangreich wie bei GUI's,
Was ist ein Server, was ist eine Workstation?
Server: bietet Netzwerkdienste an. Workstation: Eine Arbeitsstation mit Bildschirm und Tastatur, an der produktiv gearbeitet wird. Typischerweise mit einer Reihe offener Applikationen wie eine Shell, emacs, Netscape, Dateimanager, vmware, ein MUA, dazu gelegentlich ein gcc usw.
Ich kenne genuegend Rechner, die man als Server ansehen kann und die z.B. telnet oder ssh *lange* nicht verlangt haben.
OK, dafür muß auch nicht megabyteweise Programmcode geladen werden.
Eben. Allgemein: Daten, die lange[1] nicht gebraucht wurden, werden ausgelagert.
Das eben will ich nicht. Ich will dem Kernel sagen: Der RAM ist groß genug, Du sollst alles im Speicher halten. Gleichzeitig will ich Swapping eigentlich nicht abstellen, falls der Moment kommt, daß ich die Grenze des verfügbaren Speichers überschreite. Das Swapping soll eigentlich nur Sicherheitsmechanismus sein. Eigentlich liegt der Gedanke doch nicht so fern: Ich will den schnellen RAM nutzen, so lange es geht. Ich will nur dann die langsame Festplatte benutzen, wenn es unbedingt notwendig ist. Das System swapt aber lange bevor es eine Notwendigkeit gibt.
Wenn du "Nur je ein Programm, das bekommt praktisch alles" willst, verweise ich dich auf DOS. Da hast du das.
Gerade das will ich nicht, sondern ich will ein Multitasking auf relativ hohem Niveau: Viel Hauptspeicher, viele Applikationen, minimale Verzögerungen. Ausgiebiges Swapping kommt vielmehr gerade "Nur je ein Programm, das bekommt praktisch alles" näher, denn dann kann ich die Programme ja auch schließen und neu starten, wenn ich sie wieder brauche - Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de SelfLinux Beta-Release auf dem LinuxTag - am Stand der PingoS! --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Don, 01 Jun 2000 schrieb Wolfgang Weisselberg:
Buffer Cache: Speichert Daten (z.B.) der Festplatte zwischen. Da die Blockgroesse in dem Fall 512 Bytes ist, passen 8 Blocks hinein (die ueber eine circulaere linked list notiert sind). Da du immer in Blockgroesse schreiben musst, wird gegebenenfalls hier der Block zusammengebaut ... und natuerlich wird die Information nicht einfach so vergessen.
Page Cache: Enthaelt den logischen Inhalt eines Files und wird ueber File & Offset referenziert. Wird beim Lesen angelegt. (Ausschnitte von Memory Mapped Files)
Swap Cache: Enthaelt Swap Pages und erlaubt es, 'saubere', wiedereingelesene Swap Pages zu discarden.
Kannst Du mir Quellen zum Thema nennen? Literatur oder online. Interessiert mich brennend. Danke im voraus. Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de SelfLinux Beta-Release auf dem LinuxTag - am Stand der PingoS! --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Matthias Kleine schrieb in 2,2K (57 Zeilen):
Am Don, 01 Jun 2000 schrieb Wolfgang Weisselberg:
Aber schlag doch mal einen Algorithmus fuer 'Workstations' vor.
Na, wer weiß. Sicher nicht morgen...
Ja, dann ... ich dachte, du haettest da eine Idee ...
Was ist ein Server, was ist eine Workstation?
Server: bietet Netzwerkdienste an. Workstation: Eine Arbeitsstation mit Bildschirm und Tastatur, an der produktiv gearbeitet wird. Typischerweise mit einer Reihe offener Applikationen wie eine Shell, emacs, Netscape, Dateimanager, vmware, ein MUA, dazu gelegentlich ein gcc usw.
Tja ... Mein Rechner hier hat u.a. Newsserver, DNS, gettys, NTP-Server, sshd, wwwcache, Suchmaschine, ijb, ... & co. Server? Ein anderer ist ein 'Server': steht im Serverraum, im Rack. Sitzt niemand dran. Bietet Apache, SMB, uvam. Aber viele Leute loggen sich darauf ein und arbeiten darauf, lassen via remote-X Shells, Emacs, Netscape, Dateimanager, MUAs, gccs, etc. laufen. Und sind produktiv. Workstation?
Ich kenne genuegend Rechner, die man als Server ansehen kann und die z.B. telnet oder ssh *lange* nicht verlangt haben.
OK, dafür muß auch nicht megabyteweise Programmcode geladen werden.
Es duerfte recht einfach sein, auch 'Dienste' mit grossen Datenmengen (Code/Data) zu finden.
Eben. Allgemein: Daten, die lange[1] nicht gebraucht wurden, werden ausgelagert.
Das eben will ich nicht. Ich will dem Kernel sagen: Der RAM ist groß genug, Du sollst alles im Speicher halten.
Das RAM. :-) Nein, das RAM ist nicht gross genug. Denn du swappst ja. Vermutlich braucht(e) irgendetwas Platz und hat die anderen Bereiche aus dem Speicher herausgeworfen. Oder swappt die Kiste, obwohl viel RAM definiv frei sind? Und ist das auslagern oder einlagern? Erkennt dein Kernel denn deinen ganzen Speicher? Schildere doch mal *genau* die Probleme und _wann_ und _wie_ sich die Symptome zeigen.
Gleichzeitig will ich Swapping eigentlich nicht abstellen, falls der Moment kommt, daß ich die Grenze des verfügbaren Speichers überschreite. Das Swapping soll eigentlich nur Sicherheitsmechanismus sein.
Ist es aber nicht ... es ist virtueller Speicher. Auf den wird zugegriffen, falls Pages gebraucht werden, aber - nicht genuegend freie da sind - Buffer und Caches nichts hergeben koennen - kein Code/nur gelesene Daten (Demand Paging) alt ist und damit nicht gepurged werden kann - keine Daten unveraendert aus dem Swap gekommen sind (und alt sind) dann muss eben ausgelagert werden.
Eigentlich liegt der Gedanke doch nicht so fern: Ich will den schnellen RAM nutzen, so lange es geht. Ich will nur dann die langsame Festplatte benutzen, wenn es unbedingt notwendig ist. Das System swapt aber lange bevor es eine Notwendigkeit gibt.
Das System will das auch. Aber du siehst nicht die Details, die das System sieht, z.B. der Rebuild der locate-DB braucht Speicher! Und da entscheidet das System, den seit 4 Stunden ungenutzten Netscape teilweise zu swappen. Wenn du natuerlich *Zahlen* haettest ... dann koennte man da weiter argumentieren, warum das System swappt und ob es richtig ist. Das System erkennt: - Page 81642 ist in letzter Zeit[1] mehrfach verwendet worden.[2] - Page 97131 ist jetzt *lange* nicht mehr benutzt worden. - Page 61288 ist sehr aktiv genutzt worden in letzter Zeit. - Ich brauche *jetzt* eine freie Page. Welche Page soll der Kernel auslagern? Welche als naechstes? [1] sagen wir, einige Sekunden bis Minuten. Die Zeitspanne ist relativ. [2] Neue Pages haben ein Counter von 3. Wird die Page zwischen 2 Scans (die langsam durch den ganzen virtuellen Speicher wandern) benutzt, steigt der Counter um 3, sonst sinkt er um 1. Ist er 0, kann die Seite ausgelagert werden. Maximalwert ist 20.
Wenn du "Nur je ein Programm, das bekommt praktisch alles" willst, verweise ich dich auf DOS. Da hast du das.
Gerade das will ich nicht, sondern ich will ein Multitasking auf relativ hohem Niveau: Viel Hauptspeicher, viele Applikationen, minimale Verzögerungen.
Mehr Hauptspeicher? -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Matthias Kleine schrieb in 1,1K (31 Zeilen):
Kannst Du mir Quellen zum Thema nennen? Literatur oder online. Interessiert mich brennend.
/usr/src/linux/Documentation/kernel-docs.txt -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo, Matthias Kleine wrote:
Das eben will ich nicht. Ich will dem Kernel sagen: Der RAM ist groß genug, Du sollst alles im Speicher halten. Gleichzeitig will ich Swapping eigentlich nicht abstellen, falls der Moment kommt, daß ich die Grenze des verfügbaren Speichers überschreite. Das Swapping soll eigentlich nur Sicherheitsmechanismus sein.
Eigentlich liegt der Gedanke doch nicht so fern: Ich will den schnellen RAM nutzen, so lange es geht. Ich will nur dann die langsame Festplatte benutzen, wenn es unbedingt notwendig ist. Das System swapt aber lange bevor es eine Notwendigkeit gibt.
Wie schon mal geschrieben: weise dem Swap eine _sehr_ niedrige Priorität zu und schau mal, ob sich da wenigstens ein bißchen was ändert... Kannst du sogar im laufenden Betrieb machen: in der /etc/fstab ändern und dann für jede Swap- Partition swapoff und swapon ausführen... cu flo -- Jaja! ich weiss das meine Postings eine gewisse Intellugenz vorraussetzen und ein gewissen Mass an Verständniss für Humor verlangen. Nur , wenn wir alles Bierernst schreiben udn sagen würden, wie trostlos wäre denn diese Unsere Welt? [Woko in dafb] --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Fre, 02 Jun 2000 schrieb Wolfgang Weisselberg:
Kannst Du mir Quellen zum Thema nennen? Literatur oder online. Interessiert mich brennend.
/usr/src/linux/Documentation/kernel-docs.txt
Wow! Das Zeug doped mich! Bin immer wieder erstaunt, welche Schätze auf meiner Platte lagern. Thanx... Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de SelfLinux Beta-Release auf dem LinuxTag - am Stand der PingoS! --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Fre, 02 Jun 2000 schrieb Florian Gross:
Kannst du sogar im laufenden Betrieb machen: in der /etc/fstab ändern und dann für jede Swap- Partition swapoff und swapon ausführen...
Die folgende (zugegebenermaßen ziemlich brachiale) Methode hat sich für den Moment recht gut bewährt: 0 * * * * /sbin/swapoff -a 5 * * * * /sbin/swapon -a Die richtigen /proc Einstellungen such ich noch. Jedenfalls danke für die vielen Inputs. - Matthias -- SelfLinux http://www.selflinux.de Matthias.Kleine@selflinux.de SelfLinux Beta-Release auf dem LinuxTag - am Stand der PingoS! --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Florian Gross schrieb in 1,4K (38 Zeilen):
Wie schon mal geschrieben: weise dem Swap eine _sehr_ niedrige Priorität zu und schau mal, ob sich da wenigstens ein bißchen was ändert...
Hilft nix, die Prioritaet ist nur fuer den Swap unter sich selbst. Ich habe meinen Swap mit der hohen Prioritaet von pri=32000 gemountet und ich habe kein Problem. (SuSE-Kernel im Moment). -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (6)
-
a_bock@gmx.de
-
B.Brodesser@online-club.de
-
corsepiu@faw.uni-ulm.de
-
florian.gross@gmx.net
-
Matthias.Kleine@selflinux.de
-
weissel@netcologne.de