lousek
Goto Top

Windows 2003 Server - Auslagerungsdatei trotz genügend Arbeitsspeicher riesig

Hallo Forum.

Ich habe hier ein kleines "Problem" mit einem Windows 2003 Standard Server.

Dieser ist im Moment jedoch erst im Testbetrieb, und läuft im produktiven Einsatz dann auf anderer Hardware (Blade o.ä.).

Im Moment läuft er auf einem Compaq ML310 G2, 1x 2.8 GHz und 2.5 GB RAM.
Darauf ist Symantec Mail Security for SMTP 5.1 installiert.
Die eingebaute Festplatte ist eine langsame IDE-Festplatte mit 36 GB.
Am Anfang waren nur 512 MB RAM eingebaut, und die Auslagerungsdatei war über 1 GB gross.
512 MB sind so oder so zu wenig, also 2 GB bestellt und eingebaut.
Jetzt:
Warum ist die Auslagerungsdatei ein ganzes GB gross?
Zurzeit braucht er durchschnittlich etwa 500 MB der 2.5 GB RAM ... wie kann man ihn daran hindern, dass er soviel auf diese langsame IDE-HD auslagert anstatt es im RAM zu behalten?

Greetz, Lousek

Content-ID: 98513

Url: https://administrator.de/contentid/98513

Ausgedruckt am: 20.11.2024 um 18:11 Uhr

Pandora
Pandora 06.10.2008 um 11:31:58 Uhr
Goto Top
Hallo Lousek,

auf welchen Anfangswert ist denn der virtuelle Arbeitsspeicher eingestellt?
datasearch
datasearch 06.10.2008 um 11:58:07 Uhr
Goto Top
Ist doch ganz normal. Die Auslagerungsdatei sollte niemals kleiner als der verfügbare Arbeitsspeicher sein. Das geht schon bei Dingen wie "Full Crashdump" usw. los. Du kannst das Verhalten, wie Windows diese Nutzt steuern. Das hat aber nichts mit der Größe der Datei selbst zu tun. Prüfe über die Leistungskonsole wie viel Speicher tatsächlich ausgelagert wird und ändere deine Konfiguration entsprechend, falls nötig.
Lousek
Lousek 06.10.2008 um 12:10:17 Uhr
Goto Top
Als Anfangswert ist 768 MB eingestellt, als maximaler Wert ist 1536 MB eingestellt ... was passiert eigentlich wenn man den Anfangswert auf 0 MB setzt?

Also das mit der aktuellen Grösse der Auslagerungsdatei (ca 1 GB) habe ich aus dem Task Manager ;)
AndreasHoster
AndreasHoster 06.10.2008 um 12:26:09 Uhr
Goto Top
Der Taskmanager "lügt", daß was unter Auslagerungsdatei angezeigt wird ist der zugesicherte Speicher, nicht die verwendete Größe der Auslagerungsdatei (typische MS Fehlinformationen halt).
Im Perfmon unter Datenobjekt Auslagerungsdatei - Leistungsindikator Benutzung kannst Du die Benutzung der Auslagerungsdatei sehen.

Für die Performance ist es übrigens am Besten, wenn man Anfangs und Endgröße gleich macht, dann wird gleich beim Booten das Pagefile am Stück angelegt und fragmentiert nicht so, wie wenn es öfters vergrößert werden muß.

Und bei Anfangswert 0 MB wirst Du vermutlich schnell das PopUp bekommen, daß der virtuelle Speicher nicht ausreicht und die Auslagerungsdatei vergrößert werden muß.
Windows ist sich nur gerne sicher, daß er bei Bedarf den RAM Inhalt auf die Platte schreiben kann, falls eine andere Anwendung ihn braucht, deswegen sollte die Auslagerungsdatei mindestens so groß sein wie der physikalische Arbeitsspeicher. Je nachdem wie die Anwendungen Speicher reservieren auch größer.
wiesi200
wiesi200 06.10.2008 um 19:17:24 Uhr
Goto Top
Naja ich hab nen Server mit 8GB Arbeitsspeicher auch Windows 2003 aber eben in 64bit auf dem Lauft ne SQL Datenbank.
Die Auslagerungsdatei haben wir da auf 12GB fest gesetzt.
Lousek
Lousek 07.10.2008 um 08:35:00 Uhr
Goto Top
Aber ich will immer noch nicht begreifen WIESO er überhaupt etwas auslagern muss ... wieso behaltet er das nicht einfach alles im RAM bis dieser voll ist?
Ubuntu und Debian (oder allgemein Linux ... kenne nur diese beiden etwas ...) tun ja genau dies und lagern erst auf die SWAP-Partition aus wenn der Arbeitsspeicher voll ist ... aber irgendwie schafft das MS wohl nicht ???

Greetz, Lousek
AndreasHoster
AndreasHoster 07.10.2008 um 13:25:18 Uhr
Goto Top
Die Frage ist halt, will ich vorher etwas Performance verlieren, kann aber Speicheranforderungen zügig befriedigen (da Speicher frei ist durch Auslagern bevor alles zu 100 % voll ist) oder will ich bis zum richtigen vollen Speicher bessere Performance, aber dann muß eine Anwendung die viel Speicher haben will halt warten bis genügend ausgelagert ist.

Windows macht halt das erste, Linux das zweite.
Lousek
Lousek 07.10.2008 um 13:32:00 Uhr
Goto Top
Da ich eigentlich so oder so immer genügend RAM habe (oder schaue dass ich noch mehr bekomme) finde ich das 2te besser ^^ Also kann man das nicht ändern ...
datasearch
datasearch 07.10.2008 um 14:18:48 Uhr
Goto Top
Linux lagert auch bereits viel früher aus. Wenn eine OOM-Situation eintrifft, ist es meistens zu spät um noch auszulagern. Er Organisiert eben den Speicher anders. Wenn du zb. einen mySQL Server unter Linux betreibst, wird der Speicher der SQL-DB als "NON-PAGEABLE" markiert was Linux am auslagern hindert. Andernfalls würde er, je nachdem wir die Cache-Rate und das Paging konfiguriert wurde, ebenfalls auslagern wenn das konfigurierte "limit" erreicht wurde. Kannst du unter /proc/sys/vm/* konfigurieren.

Unter Windows kannst du ähnliches in der Registry oder den Systemeigenschaften konfigurieren. Du kannst dort auch erzwingen, das der Cache erst genutzt wird, wenn der RAM fast voll ist. Dummerweise hast du dann zig MB an Ausführbarem Code im RAM liegen, der nur alle paar Tage oder Monate mal ausgeführt wird. Ich würde alles so lassen. Das Caching-Verhalten muss man wirklich nur im extremfall (Massiver Speicherdurchsatz zb. auf Proxyservern oder SQL-Datenbanken) ändern.
Lousek
Lousek 07.10.2008 um 14:25:07 Uhr
Goto Top
Hmm ... ... ... ... ... ... ... ... ... ... ... was ist mit OOM gemeint?
datasearch
datasearch 07.10.2008 um 16:28:47 Uhr
Goto Top
-g-
Nicht schlimm. Das ist nur Out-Of-Memory. Wenn unter Linux der Speicher wirklich eng wird, gibt es da auch noch einen OOM-Killer, der Prozesse beendet um wieder Speicher zu bekommen.