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