PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auslagerungsdatei - sinnvoll oder hinderlich? (WinXP)


BloodHound
2004-07-25, 15:03:23
Viele User erzählen ab und zu, dass sie die Windows-Auslagerungsdatei deaktiviert haben. Das soll angeblich Vorteile bringen.

Andere wiederum schwören auf eine festgelegte Größe der Auslagerungsdatei.

Und einige andere lassen einfach alles unverändert.

Nun zu meinen Fragen:
1.Was bringt bei Games und "normalem" Windows-Betrieb die meisten Vorteile bzw. ist am schnellsten?
2.Wo liegen eventuelle Nachteile?

Klingone mit Klampfe
2004-07-25, 15:36:03
Ich habe über die letzten Jahren aus verschiedenen Quellen immer wieder gehört, dass eine feste Größe die beste Variante ist.

Aber inzwischen spielt sie IMO nicht mehr die entscheidende Rolle als Perfomance-Krücke wie zu Zeiten von Win95/98.

Ganz deaktivieren würde ich sie nur bei >1 GB RAM

BloodHound
2004-07-25, 15:47:35
Ich habe ja 1GB Ram... welche feste Größe würdest du mir empfehlen ... und wieso?

Und wo mache ich das?

Klingone mit Klampfe
2004-07-25, 16:00:03
Eine meiner Quellen ;)

http://www.windows-tweaks.info/html/virtualram.html

mapel110
2004-07-25, 16:02:58
ich hab 1536 MB festgelegt bei meinen 1gb RAM.

hab engl win-xp version, deswegen kann ichs dir schlecht sagen, wie du dahin kommst. Schau halt mal in der Systemsteuerung. die ist eigentlich sehr intuitiv angelegt.

Duran05
2004-07-25, 16:12:23
Das deaktivieren der Auslagerungsdatei bringt keinen Vorteil - eher im Gegenteil.

Egal wieviel RAM man hat: Deaktivieren sollte man sie nicht. Die neueren Windowsversionen lagern lediglich unbenutzte Daten aus - dementsprechend hat man dann mehr RAM frei.

Deaktiviert man die Auslagerungsdatei, werden diese Daten im RAM gehalten - was bedeutet, das man effektiv weniger RAM für die aktiven Programme frei hat (=Nachteil).

Sogesehen ist eine feste Auslagerungsdatei (min/max Größe gleich) die beste Wahl.

Klingone mit Klampfe
2004-07-25, 16:13:12
Systemsteuerung ist eigentlich sehr intuitiv angelegt

[OT] Wo ist die denn bitte intuitiv :kratz2:

Meine Pagefile läuft im übrigen mit 766 MB bei 512 MB RAM

HellHorse
2004-07-25, 16:41:58
Original geschrieben von theSpy
Das deaktivieren der Auslagerungsdatei bringt keinen Vorteil - eher im Gegenteil.

Egal wieviel RAM man hat: Deaktivieren sollte man sie nicht. Die neueren Windowsversionen lagern lediglich unbenutzte Daten aus - dementsprechend hat man dann mehr RAM frei.

Das Problem ist nur, dass der Swaping Algo von Windooze XP suckt.
Beispiel:
Ich habe mehr als genug Arbeitsspeicher für alle laufenden Programme.
Ich minimiere eine Anwendung für eine längere Zeit (eine Stunde z.B.). Obwohl mehr als genug Arbeitsspeicher für alle Programme zur Verfügung steht, lagert Windooze einen grossen Anteil der Seiten aus!
Wenn ich die Anwenung wieder maximiere muss ich mehrere lange Sekunden warten, bis die Seiten wieder eingelagert sind.

Leider fehlt Windooze was wie:
/proc/sys/vm/autoswapiness
/proc/sys/vm/swapiness
Aber vielleicht gibt's ja irgendwo einen Registry Key :freak:
Original geschrieben von theSpy
Deaktiviert man die Auslagerungsdatei, werden diese Daten im RAM gehalten - was bedeutet, das man effektiv weniger RAM für die aktiven Programme frei hat (=Nachteil).

Man hat Platz frei, der von keinem Programm verwendet wird. Der Vorteil liegt auf der Hand. :stareup:

BloodHound
2004-07-25, 16:45:41
Original geschrieben von theSpy
Das deaktivieren der Auslagerungsdatei bringt keinen Vorteil - eher im Gegenteil.
...
Sogesehen ist eine feste Auslagerungsdatei (min/max Größe gleich) die beste Wahl.

Und was soll ich nun bei meinen 1GB RAM einstellen?

Duran05
2004-07-25, 16:59:13
Original geschrieben von BloodHound
Und was soll ich nun bei meinen 1GB RAM einstellen?

Kommt darauf an, wieviel Speicher du auf deiner Festplatte opfern willst.

Ich halte 1024/1024 MB (=1 GB) bzw. 2048/2048 MB (=2 GB) für eine gute Wahl.

Voll ausgenutzt wird dieser Speicher meistens eh nicht. Aber prinzipiell gilt auch hier das Motto: Lieber etwas mehr, als zu wenig.

Wenn man die Auslagerungsdatei immer gleich groß lässt, sollte sie nicht fragmentieren.

Lokadamus
2004-07-25, 18:12:21
Original geschrieben von BloodHound
Und was soll ich nun bei meinen 1GB RAM einstellen? mmm...

Die Grösse richtet sich nach dem Anwendungsgebiet:
Bei ältere Spielen reichen 256 MB, bei Grafikbearbeitung (also intensiver Bildbearbeitung und nicht sowas wie "ich mal mir ein Bild mit Paint") würde 1 GB schon eher Sinn machen, im Notfall greift sich XP mehr Platz, ohne nachzufragen ...

HellHorse
2004-07-25, 18:35:11
Original geschrieben von theSpy
Ich halte 1024/1024 MB (=1 GB) bzw. 2048/2048 MB (=2 GB) für eine gute Wahl.
Wieso braucht man, je mehr pyhsikalischen Speicher man hat, eine desto grössere Auslagerungsdatei. Kannst du mir das mal erklären?

Duran05
2004-07-25, 18:56:12
Original geschrieben von HellHorse
Wieso braucht man, je mehr pyhsikalischen Speicher man hat, eine desto grössere Auslagerungsdatei. Kannst du mir das mal erklären?

Wo steht das? Das habe ich doch gar nicht geschrieben :)

Ich habe lediglich eine 1024 MB bzw. 2048 MB große Auslagerungsdatei empfohlen - und diese auch in GB umgerechnet.

gbm31
2004-07-25, 19:27:49
Original geschrieben von HellHorse
Wieso braucht man, je mehr pyhsikalischen Speicher man hat, eine desto grössere Auslagerungsdatei. Kannst du mir das mal erklären?

...

und vorher groß tönen :eyes:

...


sinn hinter swap: aktuell nicht benötigte daten aus dem ram auf die festplatte verlagern.
...
ratter, nachdenk
...

mehr speicher -> mehr daten zum auslagern -> größere swap-datei

btw: statt fester größe lieber vom sys verwalteten lassen, da wurde nämlich was bei gedacht...

leider ist dieses märchen, daß eine fest eingestellte swap das sys schneller macht, nicht totzukriegen...

Duran05
2004-07-25, 19:34:47
Original geschrieben von gbm31
leider ist dieses märchen, daß eine fest eingestellte swap das sys schneller macht, nicht totzukriegen...

... eine feste Auslagerungsdatei verhindert aber die Fragmentierung.

Was auch einen Speedvorteil bedeutet. Wenn ständig an der Größe geschraubt wird, dann müsste man auch oft defragmentieren um diesen Nachteil auszugleichen.

Daher lohnt sich eine feste Auslagerungsdatei immer. Den Unterschied wird man bei heutigen PCs aber so gut wie gar nicht mehr merken.
Vielleicht sinds 0,5% mehr Leistung...

Für leute die genügend Festplattenspeicher haben & defrag nie ausführen, sicherlich eine Überlegung wert ;)

Übrigens: Wenn man die Festplatte fast voll beschreibt und Windows die Auslagerungsdatei dynamisch vergrößern will - hat man ein Problem.
Da wäre man dann besser gefahren, wenn man den Speicher schon von anfang an "reserviert" hätte.

Nagilum
2004-07-25, 22:11:39
Original geschrieben von gbm31
...

und vorher groß tönen :eyes:

...


sinn hinter swap: aktuell nicht benötigte daten aus dem ram auf die festplatte verlagern.
...
ratter, nachdenk
...

mehr speicher -> mehr daten zum auslagern -> größere swap-datei
Himmel. Was für eine Logik.

Wenn ich also auf einem 4GB Rechner ne Runde Solitär spiele, dann natürlich nur mit 4GB Page File. Yeah! :eyes:

Swapping ist das Auslagern kompletter Prozesse, für den Fall, dass dem OS die normalen Ressourcen ausgehen. Solange dein RAM also nicht zu mehr als 100% gefüllt wird, kann das OS wunderbar ohne auszulagern leben. Wenn ausgelagert wird, dann eben nur soviel wie zusätzlich zu deinem RAM eben benötigt wird.

Wobei wir aber wohl weniger über Swapping, als mehr über Paging reden.

Hiro Hiroshi
2004-07-25, 22:57:48
Meine Page file ist 3072 (3 GB) groß.

BloodHound
2004-07-25, 23:08:39
Himmel, was willst du denn mit 3GB (!) Pagefile anfangen??
SOO groß ist Solitär doch gar nicht... :asshole:

HellHorse
2004-07-25, 23:15:37
Original geschrieben von gbm31
sinn hinter swap: aktuell nicht benötigte daten aus dem ram auf die festplatte verlagern.

Und wieso sollte man das machen, wenn alle benötigen Daten in den Hauptspeicher passen?

Damit man eine richtig fette Zugriffszeit hat, wenn man sie bracht?
Damit sich das OS die Zeit vertreiben kann?

@Nagilum
Zumindest bei mir lagert Windows eben doch Seiten aus, selbst wenn genügend Arbeitsspeicher vorhanden ist (und die Anwendung lange minimiert ist), und das suckt.

Lord Wotan
2004-07-25, 23:30:42
Ich habe mal gelesen das man immer die dreifache Menge von Arbeitsspeicher einstellen soll. Ich habe 1 GB Arbeitsspeicher. Also habe ich 3 GB Auslagerung eingestellt. Und ich habe das auf einer SCSI Festplatte, wo nur die Auslagerung drauf ist, sonst nicht. Also eine 4 GB HD. Und alles Läuft bei mir rund!

gbm31
2004-07-25, 23:38:13
Original geschrieben von HellHorse
Und wieso sollte man das machen, wenn alle benötigen Daten in den Hauptspeicher passen?

Damit man eine richtig fette Zugriffszeit hat, wenn man sie bracht?
Damit sich das OS die Zeit vertreiben kann?

@Nagilum
Zumindest bei mir lagert Windows eben doch Seiten aus, selbst wenn genügend Arbeitsspeicher vorhanden ist (und die Anwendung lange minimiert ist), und das suckt.


:lol:

vieleicht, weil betriebssysteme wie unix, linux, windows, freebsd usw auf solch einer dynamischen speicherverwaltung aufbauen und prinzipiell alles swappen, was grade nicht bebraucht wird, um den ram für kommende prozesse freizuhalten?

und das beinhaltet eben auch, daß kurz mal der GESAMTE speicherinhalt auf die platte geschrieben werden muß.

(kleiner denkanstoß: du hast keine auslagerungsdatei, und 1gb ram. jetzt bist du fröhlich am arbeiten, nutzt deinen ram zu 80% aus, und du startes eine weitere anwendung. peng: du hast 3 mb zu wenig. was jetzt? willst du eine warnmeldung deines betriebssystems, daß du doch bitte eine der anderen anwendungen beenden sollst, damit die gerade gewählte genug speicher zur verfügung hat?
andere situation: mein fem-cruncher mit 1gb.
die berechnungssoftware permas greift sich beim rechnen alles, was sie kriegt.
sprich: beim preprocessing sind mit xp knapp 800 mb frei, und 90-110 mb ausgelagert. gehts ans rechnen, sind grade mal 40mb frei, und 250mb ausgelagert. da die meiste zeit nicht beim rechnen selber, sondern beim einlesen und wieder speichern der daten verloren geht, wäre der rechner ohne swapfile kurz mal doppelt so lange beschäftigt.)

zum thema fragmentieren: wenn die auspagerungsdatei (vom betriebssystem) beim installieren angelegt wird, und der speicherausbau sich nicht ändert, ist die datei auch nicht fragmentiert. (und man kann bei bedarf sowieso das betriebssystem veranlassen, diese neu (->nicht fragmentiert) anzulegen.)

wenn man dann seine partitionen, so wie in linux vorbildlich vorgeschlagen, so anlegt, daß die auslagerungsdatei eine eigene abbekommt, gibts da auch (außer, man hat die swappartition zu klein dimensioniert) auch bei erweiterungen keine probleme.

wer heutzutage wegen der pagefile speicherplatzprobleme auf seiner festplatte hat, hat irgendwie sein geld in die falschen teile investiert... ;)

btw: unsere server haben ebenfalls 2-4 gb große pagefiles... je nach speicherausbau.

jetzt seid ihr wieder dran

Nagilum
2004-07-26, 05:53:19
Beim Paging wird das Page File in den virtuellen Speicherbereich eingeblendet, so dass das OS linear auf einen virtuellen Speicherbereich der Größe "RAM + Page File" zurückgreifen kann. Wozu brauchst du jetzt beim Solitär spielen bitte 4GB + 4GB virtuellen Speicher?

Es werden auch aktuell nicht benötigte Speicherbereiche präventiv ausgelagert, um sie dann bei einem evtl. Miss wieder zurückzuholen. Nur kann dabei eben auch nur das ausgelagert werden, was überhaupt im virtuellen Speicher liegt.


1) die Grösse des gesamten virtuellen Speichers hängt vom tatsächlich benötigten Speicher ab. Also vor allem vom Speicherbedarf der gefahrenen Anwendungen.

2) die Grösse des gesamten virtuellen Speichers darf dabei nicht kleiner sein, als die Speicheranforderungen aller maximal gleichzeitig laufenden Anwendungen

3) möglichst soviel RAM einbauen wie gleichzeitig maximal benötigt wird um die Anzahl der Misses beim Arbeiten zu verringern.


Irgendwelche Faustformeln wie "Page File = 2 x RAM" sind einfach selten dämlich.

gbm31
2004-07-26, 14:02:48
Original geschrieben von Nagilum
Irgendwelche Faustformeln wie "Page File = 2 x RAM" sind einfach selten dämlich.

ack.

anorakker
2004-07-27, 18:57:21
ich versteh immer noch nicht den sinn in einem riesigen pagefile, wenn man nur "normalo"user ist, aber z.b.1-1,5gb in seinem pc drin hat.
die vielleicht 15-20 hintergrundprozesse und kleinen zusatzprogs brauchen höchstens 50-100mb, dafür braucht man dann aber kein pagefile, da macht es ja eher sinn, eine ramdisk zu erstellen und das pagefile darauf zu starten..

anorakker
2004-07-27, 18:57:22
fuck...doppelpost :(

Icybro
2004-07-28, 06:41:30
Keine Auslagerungsdatei ist Grundsätzlich micht zu empfehlen. Der Vorteil bei einer statischen Auslagerungsdatei hat man den Vorteil, das die Festplatte nicht so stark defragmentiert

Grestorn
2004-07-28, 07:40:02
Läuft WinXP nun eigentlich zuverlässig ohne Auslagerungsdatei (bei ausreichendem phys. Speicher)?

Unter NT gab's immer wieder Probleme (z.B. das schlagartig aller verfügbarer Speicher allokiert war, obwohl einen Moment zuvor noch jede Menge Speicher frei war und keine Applikation aus ersichtlichem Grund den Speicher belegt haben könnte).

Es könnte freilich problematisch sein, wenn Memory-Mapped Files nicht mehr unterstützt werden, aber ich sehe absolut keinen Grund, warum dies nicht auch ohne Pagefile möglich sein sollte.

gbm31
2004-07-28, 07:41:27
@ anorakker:

wenn das system das pagefile verwaltet, und du mit genug speicher auch nicht ständig an die grenze gehst, wird das system auch eher die größe auf ein minimum beschränken.
(für die feste-größe-verfechter: kennt ihr dieses minimum?)
das sys wird aber meistens etwas mehr als dem physikalisch vorhandenen ram als pagefile anlegen. begründung oben einfache variante von mir, fundiertere von nagilum.


@ icybro:

abgesehen davon, daß dein post einem grammatiker den magen umdreht, wolltest du wohl schreiben, daß eine feste größe des pagefiles verhindern soll, daß dieses nicht fragmentiert. also nicht die festplatte und defragmentieren ist das, was man dagegen tut ;)
was nichts daran ändert, daß das so nicht stimmt. (kann genaus fragmentiert sein, wird es sogar, wenn man nachträglich die größe einstellt). siehe weiter oben.

@ grestorn:

was ist daran so schwer zu verstehen, daß ein os dafür sorgen muß, das unter allen umständen genug speicher vorhanden ist (virtuell)?

da der physikalisch verfügbare speicher (egal wie groß er ist) irgendwann voll ist (auch wenns praktisch nicht vorkommt), gibts als erweiterung die auslagerungsdatei.

ohne auslagerungsdatei funktionieren die aktuellen os nicht richtig, weil sie gezielt daraufhin programmiert wurden und ständig nicht benötigte teile des kernels und programmteile auslagern, auch wenn noch mehr als genug speicher frei ist.

btw:
1. strenggenommen ist der virtuelle speicher durch den festplattenplatz beschränkt.
2. wenn speicher schon immer sehr billig gewesen wäre, und die pcs seit jeher mit mehreren hundert gb ram ausgestattet gewesen wären, dann wären vieleicht die os auch ohne auslagerungsprinzip programmiert worden.
(aber soweit sind wir heute noch nicht...)
3. macht doch was ihr wollt...

Grestorn
2004-07-28, 08:29:25
Original geschrieben von gbm31
@ grestorn:

was ist daran so schwer zu verstehen, daß ein os dafür sorgen muß, das unter allen umständen genug speicher vorhanden ist (virtuell)?

da der physikalisch verfügbare speicher (egal wie groß er ist) irgendwann voll ist (auch wenns praktisch nicht vorkommt), gibts als erweiterung die auslagerungsdatei.

ohne auslagerungsdatei funktionieren die aktuellen os nicht richtig, weil sie gezielt daraufhin programmiert wurden und ständig nicht benötigte teile des kernels und programmteile auslagern, auch wenn noch mehr als genug speicher frei ist.

Das geht an meiner Frage vorbei. Denn Sinn und Zweck einer Auslagerungsdatei verstehe ich sehr wohl, vielen Dank.

Grundsätzlich ist der zur Verfügung stehende Platz aber immer begrenzt. Es sollte für das OS schlicht keinen Unterschied machen, ob ich 1 GB Speicher + 1 GB Swap-Partition (Linux) bzw. feste Auslagerungsdatei (Windows) habe oder pysische 2 GB in meinem Rechner habe. In beiden Fällen wird es Fehler geben, wenn die 2 GB nicht mehr ausreichen.

Dennoch sollte die 2. Konfig mit 2 GB und ohne Auslagerungsdatei problemlos funktionieren, und das auch noch deutlich schneller, spätestens dann, wenn das erste GB voll ausgenutzt ist.

Es ist aber bekannt, dass Windows 9x / NT generell ohne Auslagerungsdatei in Schwierigkeiten kommt, und meine Frage zielt darauf, ob das bei WinXP immer noch so ist. Deine Antwort hat dafür leider keine neuen Erkenntnisse geliefert.

x-dragon
2004-07-28, 09:43:41
Original geschrieben von grestorn
... und meine Frage zielt darauf, ob das bei WinXP immer noch so ist. Deine Antwort hat dafür leider keine neuen Erkenntnisse geliefert. Am besten einfach selbst ausprobieren :).

Zumindest hat man ja hier schon von einige gelesen bei denen es ohne einwandfrei läuft, aber ob es mit der eigenen Softwarekonfiguration genauso ist, läßt sich natürlich schlecht pauschalisieren. Ich bei 1 GB RAM 1,5 also feste Auslagerungsdatei eingestellt (gleich nach dem das System neu installiert und dann defragmentiert wurde) und hatte noch kein Bedürfniss dies zu ändern, denn Plattenspeicher hab ich auf jeden Fall genug und irgendwelche Performancezuwächse würde ich da auch nicht erwarten. Vielleicht teste ich das irgendwann mal wenn ich mal nichts zu tun hab ...

HellHorse
2004-07-28, 10:31:19
Original geschrieben von gbm31
vieleicht, weil betriebssysteme wie unix, linux, windows, freebsd usw auf solch einer dynamischen speicherverwaltung aufbauen und prinzipiell alles swappen, was grade nicht bebraucht wird, um den ram für kommende prozesse freizuhalten?

Solange der pyhsikalische Speicher nicht etwa zu 85% voll ist, lagert Linux einen Scheiss aus. Wie sich das gehört. Denn gerade nicht benötigte Daten werden in der Zukunft irgendwann benötigt. Dann mag ich nicht warten, bis das Zeugs wieder eingelagert ist, bloss weil das OS auf irgend einen "Phatomprozess" spekuliert hat, der vielleicht irgend wann kommt, und eine unbekannte Menge speicher braucht. Wenn das so weit ist, kann man zum gegeben Zeitpunkt immer noch auslagern.

Wie kann ich so was wissen?
free

gbm31
2004-07-28, 11:49:01
@ grestorn:

bitte.

das ging geht eben nicht an deiner frage vorbei.

du willst mich nicht verstehen.

das os ist darauf ausgelegt, bei speicherengpässen auf einen auslagerungsdatei zurückzugreifen, die es nach bedarf anpassen/vergrößern kann. (das dazu, daß die leute eine feste größe einstellen)

ist also !ein! unterschied, ob man 2gb physikalisch oder 1gb physikalisch und 1gb (von os verwaltet) als pagefile hat.

reichen 2gb nämlich nicht mehr, wird das pagefile größer gemacht.

@ hellhorse: linux lagert wirklich nichts vom kernel aus, solange der speicher unter 85% belegt ist?
wo ist das her?
wusste ich bis jetzt noch nicht... bei mir werden ständig 20-50 mb geswappt...

Nagilum
2004-07-28, 11:58:46
Mein 08/15 2.6er Kernel lagert defintiv weniger (eigentlich gar nichts) präventiv aus. Ganz im Gegensatz zu XP.

Ich kann mit meiner privaten Kiste mehrere Tage arbeiten, ohne das auch nur ein Byte auf der Swap-Partition landet. Solange der normale Arbeitssspeicher aussreicht, versteht sich.

Wenn man mal für mehrere Stunden seinen Rechner in Ruhe gelassen hat, merkt man den Unterschied deutlich. XP rödelt dann erstmal auf der Platte rum und schiebt die Daten wieder in den Arbeitsspeicher. Linux ist sofort präsent.

Grestorn
2004-07-28, 12:02:35
Original geschrieben von gbm31
reichen 2gb nämlich nicht mehr, wird das pagefile größer gemacht.

Lies bitte meinen Beitrag genauer. Ich sprach von einer FESTEN PARTITION (unter Linux) bzw. einer FESTEN AUSLAGERUNGSDATEI (unter Windows). Das heisst, das Pagefile kann eben nicht vergrößert werden bei Bedarf.

In vielen Systemen ist das die verwendete Einstellung - unter Unix praktisch immer, unter Windows oft.

Mehr als 2GB Speicher wird man derzeit auch nur in Extremsituationen brauchen.

Meine Ursprungsfrage ist immer noch nicht beantwortet.

x-dragon
2004-07-28, 12:15:01
Ich meine Windows fragt nach, wenn er mehr Speicher braucht als eingestellt ist. Also von daher ist "fest" bei Windows relativ.

gbm31
2004-07-28, 13:12:56
gut zu wissen, dann hat linux sich der hardwaresituation angepasst. ich habs halt nur auf kleinen rechnern laufen, als fileserver und router, die haben keine zig mbs...

@ grestorn: in deinem ersten post (dort steht deine "frage") steht nix von fest.
das ich gar nichts von fest eingestellten pagefiles bei win halte, hab ich jetzt oft genug geschrieben.
(und lesen kann ich mittlerweile auch... ;) )

warum testest du das nicht selber? du willst ja auf keinen hören...
solltest ja bald merken, ob xp was dagegen hat, seinen kernel auslagern zu dürfen oder nicht. es reagiert(e, habs vor langer zeit mal getestet, also auch: selbst ist der mann) ja auch nicht auch den regeintrag, dies zu unterlassen.

HellHorse
2004-07-28, 13:16:01
Original geschrieben von gbm31
@ hellhorse: linux lagert wirklich nichts vom kernel aus, solange der speicher unter 85% belegt ist?
wo ist das her?

Original geschrieben von HellHorse
Wie kann ich so was wissen?
free

Nagle mich bitte nicht auf 85% fest. Das ist bloss eine Schätzung von mir aufgrund der Beobachtung, dass er erst mit auslagern anfängt, wenn der physikalische Speicher fast voll ist.

@Nagilum
Genau das versuchte ich (erfolglos) rüberzubringen. Schön, dass es anderen gleich geht.

Grestorn
2004-07-28, 13:26:27
Original geschrieben von gbm31
@ grestorn: in deinem ersten post (dort steht deine "frage") steht nix von fest.
das ich gar nichts von fest eingestellten pagefiles bei win halte, hab ich jetzt oft genug geschrieben.
(und lesen kann ich mittlerweile auch... ;) )

warum testest du das nicht selber? du willst ja auf keinen hören...
solltest ja bald merken, ob xp was dagegen hat, seinen kernel auslagern zu dürfen oder nicht. es reagiert(e, habs vor langer zeit mal getestet, also auch: selbst ist der mann) ja auch nicht auch den regeintrag, dies zu unterlassen.
Ich wollte in meiner Frage nicht wissen, wozu eine Auslagerungsdatei gut ist. Das hast Du aber versucht mir zu erklären, und das war deswegen am Thema vorbei.

Ich weiß, dass WinXP zunächst einwandfrei ohne Auslagerungsdatei arbeitet. Die Probleme tauchten damals unter NT auch erst nach einiger Zeit auf (und nicht weil der Speicher ausgegangen ist). Es hätte ja sein können, dass hier jemand weiß, dass es immer noch so ist.

So muss ich das selbst testen, was einige u.U einige Tage in Anspruch nehmen wird. Ggf. läuft erst nach Wochen irgendein Programm nicht korrekt, und ich muss dann erstmal darauf kommen, dass es an der fehlenden Auslagerungsdatei liegt.

Mit "auf andere hören" hat das doch überhaupt nichts zu tun.

gbm31
2004-07-28, 14:14:55
@ grestorn: im zweiten teil war meine antwort... egal.

hier fragen=auf andere hören, oder nicht? auch egal.

meine bescheidenen erfahrungen:

ansys, permas (fem-software), photoshop starten nicht/bringen fehlermeldungen ohne pagefile.
anscheinend reservieren sie beim start viel(virtuellen) speicher.

trotz nicht auffindbarer pagefile.sys und angegebener größe 0 zeigte der taskmanager sehr wohl nutzung und verlauf selbiger an. programmfehler?

das xp war trotzdem nach einer nacht nicht sofort wieder da. doch auslagerungsdatei angelegt?

schon gepostet: unterdrücken der auslagerung via regeintrag wurde nicht beachtet.

(getestet vor fast 1 1/2 jahren mit sys1)

da ich regelmäßig mit oben genannten progs arbeite -> wieder eine auslagerungsdatei eingestellt, und bei mittlerweile 320 gb hdd ist mir die größe auch egal.

@ hellhorse:
mich hat allgemein die aussage interessiert. hab nämlich, als ich die linuxteile aufgesetzt hab, lang gesucht wg nötigem speicherausbau. aber nix konkretes gefunden. jetzt sagt ihr mir, daß erst ausgelagert wird, wenn fast nix mehr da ist -> neue erkenntnis (ich als windowsgeschädigter kenn das halt anders)

wenn meine zwei das swapfile benutzten, brauch ich also mehr speicher.

Steel
2004-07-28, 15:19:31
Original geschrieben von grestorn
Läuft WinXP nun eigentlich zuverlässig ohne Auslagerungsdatei (bei ausreichendem phys. Speicher)?

Läuft, weil XP dem System dabei (das vermute ich) eine "virtuelle Auslagerungsdatei" ;D vorgaukelt, die nur im RAM liegt.

Wenn der Speicher dann physikalisch knapp wird reagiert das System immer träger bis es dann quasi stehen bleibt.

Mähman
2004-07-28, 19:49:40
Ich würde die Auslagerungsdatei auf jeden Fall nicht deaktivieren. Es gibt irgendeine Regel, wie gross diese im Verhältnis zu den verwendeten RAM sein sollte, doch leider habe ich diese Regel vergessen, ich glaube ich habe sie von dieser Seite hier http://www.winhelpline.de/. Allerdings habe ich sie leider nicht mehr gefunden, vielleicht hat jemand anderer mehr Glück.

Icybro
2004-07-28, 20:27:31
Original geschrieben von gbm31
@ anorakker:

wenn das system das pagefile verwaltet, und du mit genug speicher auch nicht ständig an die grenze gehst, wird das system auch eher die größe auf ein minimum beschränken.
(für die feste-größe-verfechter: kennt ihr dieses minimum?)
das sys wird aber meistens etwas mehr als dem physikalisch vorhandenen ram als pagefile anlegen. begründung oben einfache variante von mir, fundiertere von nagilum.


@ icybro:

abgesehen davon, daß dein post einem grammatiker den magen umdreht, wolltest du wohl schreiben, daß eine feste größe des pagefiles verhindern soll, daß dieses nicht fragmentiert. also nicht die festplatte und defragmentieren ist das, was man dagegen tut ;)
was nichts daran ändert, daß das so nicht stimmt. (kann genaus fragmentiert sein, wird es sogar, wenn man nachträglich die größe einstellt). siehe weiter oben.

@ grestorn:

was ist daran so schwer zu verstehen, daß ein os dafür sorgen muß, das unter allen umständen genug speicher vorhanden ist (virtuell)?

da der physikalisch verfügbare speicher (egal wie groß er ist) irgendwann voll ist (auch wenns praktisch nicht vorkommt), gibts als erweiterung die auslagerungsdatei.

ohne auslagerungsdatei funktionieren die aktuellen os nicht richtig, weil sie gezielt daraufhin programmiert wurden und ständig nicht benötigte teile des kernels und programmteile auslagern, auch wenn noch mehr als genug speicher frei ist.

btw:
1. strenggenommen ist der virtuelle speicher durch den festplattenplatz beschränkt.
2. wenn speicher schon immer sehr billig gewesen wäre, und die pcs seit jeher mit mehreren hundert gb ram ausgestattet gewesen wären, dann wären vieleicht die os auch ohne auslagerungsprinzip programmiert worden.
(aber soweit sind wir heute noch nicht...)
3. macht doch was ihr wollt...

War noch früh... deshalb auch der etwas verwirrte Gedankengang und die grauenvolle Grammatik. Auch wenn sich dein Magen umgedreht hat, hoffe ich das das du dein Essen bei dir behalten hast *g*

Lokadamus
2004-07-28, 20:44:06
mmm...

Wegen XP und swapping => es krallt sich im Notfall einfach den Platz auf der HDD, den es braucht, egal, ob die Datei fest ist oder nicht (wahrscheinlich auch, wenn das Swapfile deaktiviert ist). Nur so kann XP seine Stabilität gewährleisten, um es dumm zu sagen.

Wegen Linux und Swapping, im Gegensatz zu Unix/ *BSD/ Windows swappt Linux erst dann Sachen aus, wenn der Speicher relativ voll ist. Allerdings reserviert Linux den Speicher vorher schon, wodurch gerne der ganze Speicher als "full" angezeigt wird, obwohl nichts los ist. Linux ist eigentlich ein Server- OS, wo dieses Verfahren auch mehr Sinn macht => es werden selten neue Sachen gestartet, eher werden dauernd neue Prozesse von Apache/ PHP produziert, in wie weit diese von dem Swapping seitens Linux profitieren, weis ich nicht, beim 2.4er Kernel heist es, das FreeBSD besser belastbar sei, wie es im Gegensatz zum 2.6er Kernel aussieht, weis ich nicht ... bei Windows würde so ein Verhalten nur massive Probleme verursachen, zu häufig werden andere Programme aufgerufen ...

Wegen der Grösse des Swapfiles => 2x die Menge des Rams, wobei diese Regel momentan nur noch für Linux/ Unix und Co. gilt (Server => DB und die wächst gerne an). Als Client ist wieder die Frage, was braucht man wirklich? dazu kann ich nicht viel sagen.
Windows XP selber läuft ab 512 MB RAM ruhig, mit 1 GB sehr ruhig. Ein kleines Swapfile von 128 MB dürfte bei den meisten Leuten ausreichen, da allerdings die HDDs auch grösser werden, kann man gleich 256 MB oder 512 MB als fest vorgeben ...

zeckensack
2004-07-28, 20:46:58
Windows* kann nicht mehr als 2GiB Speicher verwalten. Der virtuelle Adressraum ist dort einfach zu Ende. Dabei ist es auch egal ob der Speicher physikalisch vorhanden ist, oder per Pagefile emuliert wird.

Deswegen:
a)Für Rechner mit <2GiB Speicher eine Auslagerungsdatei fester Grösse anlegen. Grösse: 2GiB - physikalischer Speicher (bei 1,5GiB RAM zB 0,5GiB).
b)für Rechner mit exakt 2GiB Speicher Windows die Auslagerungsdatei selbst verwalten lassen, damit es sich nicht verschluckt. Hier wird fast nichts passieren, also keine Sorge.
c)Rechner mit >2GiB Speicher: Gratulation, ihr wurdet verarscht. Ihr habt Speicher bezahlt, den ihr überhaupt nicht benutzen könnt. Für diese Speichermengen braucht man teure Pro-Versionen von Windows mit speziellen Startparametern**, Linux***, oder (vorzugsweise) ein 64Bit-OS mit dazu passendem 64Bit-Prozessor.


*XP Home
**maximal 3GiB
***maximal 3,5GiB

Gast
2004-07-28, 21:12:14
Konfigurieren von Auslagerungsdateien für die Optimierung und Wiederherstellung in Windows XP


http://support.microsoft.com/default.aspx?scid=kb;de;314482

GloomY
2004-07-28, 21:46:25
Ack @ Zeckensack
Original geschrieben von grestorn
Die Probleme tauchten damals unter NT auch erst nach einiger Zeit auf (und nicht weil der Speicher ausgegangen ist). Es hätte ja sein können, dass hier jemand weiß, dass es immer noch so ist.

So muss ich das selbst testen, was einige u.U einige Tage in Anspruch nehmen wird. Ggf. läuft erst nach Wochen irgendein Programm nicht korrekt, und ich muss dann erstmal darauf kommen, dass es an der fehlenden Auslagerungsdatei liegt.Das Problem könnte Speicherfragmentierung sein. Dabei ist zwar noch genügend Speicher vorhanden (alle freien Stücke im Speicher aufsummiert), aber nicht genügend an einem Stück. Wenn das Page-File noch da ist, dann kann man neuen Speicher im Page-File allozieren, ansonsten schlägt das Allozieren fehl und die Anwendungen laufen gar nicht mehr.
Hier hilft das Pagefile aus, indem es eine größere Menge physikalisch adressierbaren Speichers (nach-)bildet, in welchem genügend zusammenhängender Speicher vorhanden ist :)
Gegen die sonstigen Verklemmungen von 32 Bit Betriebssystemen (2 GiB Barriere) bezüglich des virtuellen Adressraums hilft das natürlich auch nichts.



Mal allgemein zum Thread: http://www.pbhosting.de/pbportal.de/filebase/smilies/fresse.gif

Ich habe hier so viel Halbwissen und Spekulation gelesen, dass mir fast schlecht wird. Und jeder meint, etwas hierzu sagen zu können / müssen. Wer keine Ahnung von Speicherverwaltung hat, soll doch das Posten einfach sein lassen.

gbm31
2004-07-28, 22:59:14
okok, ich bin ja schon ruhig... ;)

Grestorn
2004-07-29, 07:48:10
@zeckensack und GloomY:
An die Beschränkung durch den 32bit Adressraum hatte ich gar nicht mehr gedacht, obwohl sie mir eigentlich bewusst ist... Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.
b)für Rechner mit exakt 2GiB Speicher Windows die Auslagerungsdatei selbst verwalten lassen, damit es sich nicht verschluckt. Hier wird fast nichts passieren, also keine Sorge.
An sich würde aus dem 32 Bit Adressraum ja folgern, dass es bei 2GB phys. Speicher vollkommen egal ist, ob man noch eine Auslagerungsdatei hat oder nicht. Aber nach Deiner Aussage "verschluckt" sich Windows ohne Pagefile. Was meinst Du damit genau? Sind das irgendwelche nicht nachvollziehbare Merkwürdigkeiten in Windows oder kann man das Verhalten klar reproduzieren und vielleicht sogar erklären?

@all:
Das Windows in irgendeiner Form auslagert, ohne das eine Auslagerungsdatei angegeben ist, ist völlig ausgeschlossen. Nicht jedes Rattern auf der Platte bedeutet, dass Speicher aus- oder eingelagert wird. Ab und zu wird auch wirklich etwas geladen oder gespeichert ... :D.
Unter XP gibt es regelmäßige Aufgaben, die das OS automatisch durchführt, wenn das System einige Zeit idle ist, wie z.B. die Bootoptimierung. Auch diese führen zu fröhlichem Rattern der Platte und das ganz ohne Beteiligung des Anwenders.

Aber XP wird ganz bestimmt nicht in eine nicht vorhandene Datei auslagern.

MasterElwood
2004-07-29, 17:42:20
Also theorie hätten wir jetzt ja schon genug.

Hat jemand 2GB, der mal mit und ohne PF testen und berichten kann, ob sich performance - oder stabilitätsmäßig was verändert?

Lokadamus
2004-07-29, 18:24:39
Original geschrieben von grestorn
An sich würde aus dem 32 Bit Adressraum ja folgern, dass es bei 2GB phys. Speicher vollkommen egal ist, ob man noch eine Auslagerungsdatei hat oder nicht. Aber nach Deiner Aussage "verschluckt" sich Windows ohne Pagefile. Was meinst Du damit genau? Sind das irgendwelche nicht nachvollziehbare Merkwürdigkeiten in Windows oder kann man das Verhalten klar reproduzieren und vielleicht sogar erklären?

@all:
Das Windows in irgendeiner Form auslagert, ohne das eine Auslagerungsdatei angegeben ist, ist völlig ausgeschlossen. ..

Aber XP wird ganz bestimmt nicht in eine nicht vorhandene Datei auslagern. mmm...

Gloomy meinte damit, dass der Ram nicht an einem Stück genutzt wird und es dadurch kleine Lücken gibt, die nicht zusammenhängen. Diese "freien" Lücken ergeben nachher eine Summe an freiem Speicher, der für Anwedung XYZ dicke ausreichen würde, aber aufgrund der weiten Entfernungen gar nicht benutzt werden kann (sprich, du brauchst 200 MB, 50 MB bekommst du ganz vorne und die restlichen 150 MB ganz hinten, sowas geht nie gut, weil die Sprungadressen zu gross werden dürften und dadurch keine Software ordentlich laufen kann). Durch das Swapfile kann Windoof den Ram einmal aufräumen ...

Wegen Windows braucht kein Swapfile: Kennst du das Spiel Söldner? Ist ein Onlinespiel (gibt eine kostenlose Demo davon), was sehr viel Speicher frisst, erst recht, wenn man sowohl Server als auch Client auf einer Kiste laufen lässt. Mein Swapfile war auf feste Grösse eingestellt, allerdings fiel mir nach dem Beenden von Söldner (als Client) ein kleines Popup von Windows auf => Windows XP Home hat eigenhändig die Verwaltung des Swapfiles übernommen, weil nicht mehr genug vorhanden war ... und nun?

Grestorn
2004-07-29, 20:00:47
Original geschrieben von Lokadamus
mmm...

Gloomy meinte damit, dass der Ram nicht an einem Stück genutzt wird und es dadurch kleine Lücken gibt, die nicht zusammenhängen. Diese "freien" Lücken ergeben nachher eine Summe an freiem Speicher, der für Anwedung XYZ dicke ausreichen würde, aber aufgrund der weiten Entfernungen gar nicht benutzt werden kann (sprich, du brauchst 200 MB, 50 MB bekommst du ganz vorne und die restlichen 150 MB ganz hinten, sowas geht nie gut, weil die Sprungadressen zu gross werden dürften und dadurch keine Software ordentlich laufen kann). Durch das Swapfile kann Windoof den Ram einmal aufräumen ...
Der Speicher, egal ob physisch oder virtuell, wird immer mit virtuellen Adressen verwaltet. Der Speicher kann nur innerhalb einer Applikation fragmentieren (da malloc()/free() in dem Heap der Applikation Lücken erzeugt), aber nicht für das gesamte OS.

Also zieht dieses Argument sicher nicht für eine Auslagerungsdatei.

Original geschrieben von Lokadamus
Wegen Windows braucht kein Swapfile: Kennst du das Spiel Söldner? Ist ein Onlinespiel (gibt eine kostenlose Demo davon), was sehr viel Speicher frisst, erst recht, wenn man sowohl Server als auch Client auf einer Kiste laufen lässt. Mein Swapfile war auf feste Grösse eingestellt, allerdings fiel mir nach dem Beenden von Söldner (als Client) ein kleines Popup von Windows auf => Windows XP Home hat eigenhändig die Verwaltung des Swapfiles übernommen, weil nicht mehr genug vorhanden war ... und nun?
Interessant, dass Windows den virtuellen Speicher automatisch einschaltet, wenn ihm der phys. Speicher ausgeht, wusste ich nicht.

Ich denke aber, bei 2 GB phys. Speicher bringt XP das gar nix, weil mehr als 2GB kann XP nicht verwalten, egal ob mit oder ohne Pagefile.

P.S.: Was hat eigentlich dieses "mmm..." zu bedeuten, mit dem Du jeden Deiner Beiträge beginnst?

noid
2004-07-29, 20:08:07
32 bit sind doch 4Gbit?

Lokadamus
2004-07-29, 20:08:50
mmm... <--- Begrüssung ;)

Das ist die Frage, wie gut die Speicherverwaltung von Windows ist und die ist nicht so doll ;) ...

Das Windows den Speicher selbstständig verwaltet, dürfte eine Sicherheitsmaßnahme zwecks Stabilität sein, leider weis ich nicht, wie stark Windows das File vergrössert hat.
Wie das mit 2 GB genau ist, weis ich nicht, bei Win 98 war da definitiv ende, bei XP keine Ahnung, weil Windows selber als empfohlene Grösse 1,5 GB bereit stellt und das bei 1 GB Ram :ratlos: ... ab dem P2 sollen die CPUs eigentlich 36 Bit zwecks Adressierung haben, damit könnte man ca. 64 GB ansprechen (keine Lust, es durchzurechnen) ...

Noid
Jein, du kannst damit 4 Gbit durchadressieren, wobei jede einzelne Adresse auf ein Byte verweist => 4 GB können mit 32 Bit verwaltet werden. Damit du es dir besser vorstellen kannst, kannst du eine Exceltabelle als Beispiel nehmen, du hast A1 - A65535, das wären 16 Bit, wobei in Feld A immer etwas mehr rein kann, als ein Bit ;) ...

noid
2004-07-29, 20:14:33
und warum reden hier alle von 2GB sperre? mir unverständlich ;)

zum thema: ne feste größe einstellen und gut. wahrscheinlich liegt der temp-ordner der leute auch auf den platten die sie nicht fragmentiert haben wollen ^^
defrag macht man einmal im jahr... fürs spielen ist es eh nicht weiter wichtig.

du must ja nur 2^6 rechnen ;) das sind 64.
10 ^= kilo
20 ^= mega
30 ^= giga
...

durchrechnen braucht man nie die komplette zahl X-D

Grestorn
2004-07-29, 20:19:39
Original geschrieben von noid
und warum reden hier alle von 2GB sperre? mir unverständlich ;)

zum thema: ne feste größe einstellen und gut. wahrscheinlich liegt der temp-ordner der leute auch auf den platten die sie nicht fragmentiert haben wollen ^^
defrag macht man einmal im jahr... fürs spielen ist es eh nicht weiter wichtig.
Das höchste Bit wird im Regelfall nicht zur Adressierung verwendet.

Adressen überhalb 0x80000000 sind üblicherweise Betriebssystem-interne Dinge reserviert.

2^31 sind genau 2 Gigabyte

Lokadamus
2004-07-29, 20:41:06
mmm...

Also, wenn ich google, finde ich nur Angaben, das man mit 32 Bit 4 GB ansprechen können kann, allerdings liest man nirgendwo dabei, das Windows auch einiges selber an Platz braucht und einiges für interne Zwecke "mißbraucht" wird, obwohl das gar nicht geht (sprich, 1 GB sind sonstwohin ;)) => man hat als User nur 2 GB zur Verfügung ...

Lord Wotan
2004-07-29, 23:34:37
Original geschrieben von zeckensack

c)Rechner mit >2GiB Speicher: Gratulation, ihr wurdet verarscht. Ihr habt Speicher bezahlt, den ihr überhaupt nicht benutzen könnt. Für diese Speichermengen braucht man teure Pro-Versionen von Windows mit speziellen Startparametern**, Linux***, oder (vorzugsweise) ein 64Bit-OS mit dazu passendem 64Bit-Prozessor.
[/SIZE] Ich habe XP Pro. Soll das nun heißen das Windows XP nicht mit >2Gib Speicher anfangen kann?

noid
2004-07-29, 23:46:53
Original geschrieben von grestorn
Das höchste Bit wird im Regelfall nicht zur Adressierung verwendet.

Adressen überhalb 0x80000000 sind üblicherweise Betriebssystem-interne Dinge reserviert.

2^31 sind genau 2 Gigabyte

trotzdem hab ich 32bit physikalisch - egal was sich in der oberen speicherhälfte an daten tummelt, ob os oder anwendersachen.

AlfredENeumann
2004-07-29, 23:47:19
Original geschrieben von gbm31

leider ist dieses märchen, daß eine fest eingestellte swap das sys schneller macht, nicht totzukriegen...

Das ist kein Märchen.
1) Nicht Fragmentiert
2) WIN ist nicht damit beschäftigt die Auslagerungsdatei laufend größer und kleiner zu machen.

Lokadamus
2004-07-30, 07:15:52
Original geschrieben von noid
trotzdem hab ich 32bit physikalisch - egal was sich in der oberen speicherhälfte an daten tummelt, ob os oder anwendersachen. mmm...

Ja, du hast 32 Bit, die Frage ist nur, was Windows mit dem 32. Bit macht => Entweder ist es eine vorzeichenbehaftete Variable, dann hat es die Zahlen von + 2 Milliarden bis - 2 Milliarden zur Verfügung (so hört sich die Erklärung von grestorn für mich an) oder es ist vorzeichenlos, womit der Bereich von 0 - 4 Milliarden zur Verfügung steht. Frage ist, was MS gemacht hat, bei Win 9x ist der Speicher aufjedenfall begrenzt, bei 2000 hat MS wohl auch limitiert ... genaue Infos hab ich nicht gefunden, aber das ist auch interessant:
http://support.microsoft.com/default.aspx?kbid=291988 (siehe Quote)
http://de.wikipedia.org/wiki/Windows_2000
http://de.wikipedia.org/wiki/Windows_Server_2003
When the /3GB switch is used with Windows 2000 Professional or with Windows 2000 Server, the kernel components are loaded into the memory space by using the 4 GB RAM Tuning feature in the same way as they load in Windows 2000 Advanced Server and in Windows 2000 Datacenter Server. This functionality lets device-driver developers test their drivers in this configuration without having to install Windows 2000 Advanced Server or Windows 2000 Datacenter Server. The user-mode memory space is still limited to 2 GB.
When the /3GB switch is used with Windows XP Professional or with the Standard Edition, Datacenter Edition, or Enterprise Edition of Windows Server 2003, the /3GB switch works identically across all versions. This functionality lets device-driver developers test their drivers in this configuration without having to install one of the Windows Server 2003 products just listed. The user-mode memory space is now limited to 3 GB.Ich hoffe, man erkennt das Problem, habs extra hervorgehoben ;) ...

gbm31
2004-07-30, 08:02:51
Original geschrieben von AlfredENeumann
Das ist kein Märchen.
1) Nicht Fragmentiert
2) WIN ist nicht damit beschäftigt die Auslagerungsdatei laufend größer und kleiner zu machen.

windows ist nicht laufend damit beschäftigt, das pagefile kleiner oder größer zu machen. das war vieleicht in zeiten von 8-64mb ram so...(zur fragmentierung sag ich nix mehr) heute hat jeder minimum 256mb, die leute hier 1(-2gb) drin.
windows (xp) legt also anfangs seine standard größe an (afaik ram*1,5) und ändert die nur noch, wenns mal wirklich zu wenig war. (bei mir gar nicht, hat seit install dieselbe größe)

daß bei ausgeschalteter auslagerung noch versteckt ausgelagert wird, kann ich verneinen.

hab ne kleine testinstall auf eine alte 4gb hdd gemacht. da ist noch schön überschaubar, ob plötzlich 300mb oder mehr weg sind...
dieses sys lass ich grade nonstop unter xp ohne pagefile laufen. 512mb ram sind verbaut.

gibt es software, die den aktuellen speicherinhalt anzeigt (betonung auf zeigen, auslesen kann jeder), vieleicht auch die zusammenhängenden bereiche?

btw: die 2gb-grenze hab ich total vergessen... zuhause scheint xp zumindest keine angst davor zu haben, 2,5 gb (1+1,5) virtuell adressieren zu wollen...
einer unserer domaincontroller (win2003 server standard) mit 2gb ram will sogar über 6gb verfügen...

http://www.gbm31.de/serverspeicher1.jpg

noid
2004-07-30, 09:49:46
Original geschrieben von Lokadamus
mmm...

Ja, du hast 32 Bit, die Frage ist nur, was Windows mit dem 32. Bit macht => Entweder ist es eine vorzeichenbehaftete Variable, dann hat es die Zahlen von + 2 Milliarden bis - 2 Milliarden zur Verfügung (so hört sich die Erklärung von grestorn für mich an) oder es ist vorzeichenlos, womit der Bereich von 0 - 4 Milliarden zur Verfügung steht. Frage ist, was MS gemacht hat, bei Win 9x ist der Speicher aufjedenfall begrenzt, bei 2000 hat MS wohl auch limitiert ... genaue Infos hab ich nicht gefunden, aber das ist auch interessant:
http://support.microsoft.com/default.aspx?kbid=291988 (siehe Quote)
http://de.wikipedia.org/wiki/Windows_2000
http://de.wikipedia.org/wiki/Windows_Server_2003
Ich hoffe, man erkennt das Problem, habs extra hervorgehoben ;) ...

das os läuft aber sicherlich nicht im user-mode. ich interpretiere das ganze nämlich so, dass jedes programm über einen virtuellen lokalen und einen virtuellen gobalen (welcher von allen programmen wird) verfügt. windows gestattet jetzt aber bei der umsetzung der logischen adressen in physikalische lediglich eine zuordnung vom max 2GB an ein programm.
dies hätte sinn, da die seitentabellen der einzelnen programme sonst extreme ausmasse annehmen können.

der aufbau der adressumsetzung, und die antwort auf die frage die sich hier alle stellen gibt es hier:

http://www.fh-augsburg.de/~elli/fh/betriebssysteme/Bs_4.pdf
Size: 729 KB (746.321 bytes)

;)

Die Seitentabelleneinträge vom Windows 2000 zeigen in den ersten 512 Einträgen auf prozessspezifische Seitentabellen, die die Adressen von 0 bis 2 GB der jeweiligen Pro-zessumgebung beschreiben. Die Einträge 512 bis 1024 zeigen für alle Prozesse auf diesel-ben Seitentabellen, die den allen gemeinsamen Systembereich von 2 bis 4 GB beschreiben.

auf den seiten des wikis steht es leider etwas seltsam. die normale version von 2000 sollte nut 4GB unterstützen, da sich sonst die leute für server nicht die teureren lizensen kaufen ;)
bei 2003 haben die das ganze noch mal mehr eingeschränkt.hier sieht es laut MS so aus, dass man die günstigeste variante nur für 2GB speicher nehmen kann. wer bessere server hat braucht auch bessere win-versionen.

wenn ich jetzt noch finden würde wieviel ram xp pro und home al greze haben wären wir bei zufrieden. nur hat der user-mode definitiv nichts damit zu tun.

edit: hier steht's
http://www.utexas.edu/computer/xp/

windows xp kann also locker mit 4GB umgehen.

gbm31
2004-07-30, 10:53:48
naja, den oben genannten link würd ich jetzt nicht unbesehen als beweis defür ansehen, daß xp mit 4gb umgehen kann... sieht ein bisschen nach vom prospekt abgeschrieben aus...

dafür ist das pdf gut interessant :up:

noid
2004-07-30, 10:56:59
Original geschrieben von gbm31
naja, den oben genannten link würd ich jetzt nicht unbesehen als beweis defür ansehen, daß xp mit 4gb umgehen kann... sieht ein bisschen nach vom prospekt abgeschrieben aus...

?
und wo bleibt dann dein gegenbeweis? immerhin ist ne "prospektaussage" schon etwas mehr als auf den 2GB user-mode rumzuhaken, der nur pro task existiert. ;) jetzt weiss ich endlich woher die leute immer diese sperren haben. mir kommt das vor als ob jemand das thema virtueller speicher nicht verstanden hat.

reicht ne ms seite? bitte....
http://support.microsoft.com/default.aspx?scid=kb;en-us;306824&Product=winxp

gbm31
2004-07-30, 11:00:42
? why so agressive?

ich finds nur nicht so "handfest".

gibts ja sehr oft inder computerwelt, daß außen mehr draufsteht als drin ist...

ms kostenlos: nur, wenn du kein oem-produkt hast. würd aber nicht drauf gehn, daß du gleich beim kompetenten speicherguru landest.

[edit]: editieren während ich antworte ist blöd :D

und es war abgeschrieben! *ätsch*

ich hab keine sperre, ich lese immer nur davon. die sys, an denen ich arbeite/spiele haben entweder weniger speicher und erreichen diese sperren nicht, oder mehr, dann aber mit speziellen betriebssystemen. hab also selber noch keine erfahrung mit der "schallmauer".

noid
2004-07-30, 11:18:38
ich hab auch die seite verlinkt weil sie beim googlen weiter oben als die ms-seite stand. hätte ich vllt nicht machen sollen.
also wen es interessiert, der kann sich ja nochmal das pdf lesen. es scheint sehr hilfreich zu sein ;)

prinzipiell müsste windows sogar mehr als 4GB nutzen können, dann allerdings geswapped. was auf nem server zB nicht sonderlich gewünscht ist. deswegen wird ms diese sperren besonders bei den server-editionen eingebaut haben.
ich frag mich nur ob jemand es schafft 512 tasks mit vollen 2GB speichernutzung zu erstellen ^^ dann wäre nämlich wirklich ende des logischen speichers und jedes swappen nicht mehr möglich.

Grestorn
2004-07-30, 11:27:20
noid hat natürlich recht, der Adressspace von 2 GB ist pro Prozess und nicht für Windows insgesamt.

Keine Ahnung, wie ich auf diesen Trichter gekommen bin... :flöt:

Lokadamus
2004-07-30, 11:41:16
mmm...

Die Seitentabelleneinträge vom Windows 2000 zeigen in den ersten 512 Einträgen auf prozessspezifische Seitentabellen, die die Adressen von 0 bis 2 GB der jeweiligen Pro-zessumgebung beschreiben.
Die Einträge 512 bis 1024 zeigen für alle Prozesse auf dieselben Seitentabellen, die den allen gemeinsamen Systembereich von 2 bis 4 GB beschreiben.Die Aussage ist in dem Sinne neu, das wir uns darauf einigen können, das eine einzelne Anwendung max. 2 GB zur Verfügung stehen, diese allerdings aus Ram + Swapfile bestehen kann, oder? (ansonsten müsste eine einzelne Anwendung unendlich Ram beanspruchen können, 2 GB Ram und XXX GB Swapfile)
Wegen Einträge von 512 - 1024, das meinte ich mit "es fehlt irgendwie 1 GB an Ram", Windows verwaltet intern zwar 4 GB, aber das klärt nicht die Frage, wie gross darf max. ein Swapfile selber sein, bevor Windows zusammenbricht (wegen zuviel Ram) ?!? Bei Win 98 liegt die natürliche Grenze beim Ram bei 512 MB, danach muss per Registry die Grenze heraufgesetzt werden, wobei das Swapfile selber grösser sein darf (konfus, bin verwirrt) ...

x-dragon
2004-07-30, 11:45:00
Ihr könnt einen ja echt verwirren mit eurem Geschreibsel ... :).

Hat hier nicht vielleicht jemand 1,5 oder mehr RAM in seinem Rechner? Der kann ja mal nachschauen was Windows dort für ein Auslagerungsdatei "empfiehlt" (in der Hoffnung das Windows selbst weiß wo seinen Grenzen sind).

Phoenix03
2004-07-30, 11:48:59
Noch mal zurück zum thema bei 1GB lang 256MB
(fest net variable) dick aus.
Bei 1,5 oder 2GB kann man ihn getrost abschalten.
(wers nicht glaubt kann ja mal gucken zu wieviel prozent der speicher genutzt wird!!)
pagefile.sys verlangsamt den zugriff nur, dazu muss man nur mal bedenken das die Ramzugriffzeit im NS bereich liegt festplatten bei 5-10 MS!
Ein problem besteht aber denoch mitlerweil gibts games wie SWG die ne menge speicher brauchen da empiehlt sich 2GB virtuellen speicher.
Einfach Testen obs läuft wenns nicht reicht wird windows das schon sagen.

noid
2004-07-30, 11:49:25
das swapfile kann so gross sein wie dein platte, maximal aber so groß wie der gesamte logische adressraum (drüften mehr als 40bit ~ Tera sein). allerdings hast du ein fettes problem beim benutzten, da windows nur am swappen ist wenn jeder task seinen speicher benutzt.
die menge an maximalem physikalischen speicher sehe ich nur als einschränkung der lizenz. bei älteren systemen könnte auch die begrenzung der umgekehrten seitentabelle (informationen über den belegungszustand der rahmen) sein - die muss man schliesslich auch irgendwo verwalten.

edit: ich hab 1 GB und er nutzt auf der platte 7XXMB wie vorgeschlagen.

Phoenix03
2004-07-30, 11:55:22
Original geschrieben von x-dragon
Ihr könnt einen ja echt verwirren mit eurem Geschreibsel ... :).

Hat hier nicht vielleicht jemand 1,5 oder mehr RAM in seinem Rechner? Der kann ja mal nachschauen was Windows dort für ein Auslagerungsdatei "empfiehlt" (in der Hoffnung das Windows selbst weiß wo seinen Grenzen sind).

Windows ist da ganz stumpf macht immer variabel bis zu 3fachen menge des Rams egal wieviel du hast

MasterElwood
2004-07-30, 12:36:28
Ich wiederhole:

Wer hat 2GB und kann testen, ob sich mit/ohne page performancemäßig was tut?


Ein bisschen Praxis nach so viel theorie wär nicht schlecht...

gbm31
2004-07-30, 13:43:27
Original geschrieben von x-dragon
Hat hier nicht vielleicht jemand 1,5 oder mehr RAM in seinem Rechner? Der kann ja mal nachschauen was Windows dort für ein Auslagerungsdatei "empfiehlt" (in der Hoffnung das Windows selbst weiß wo seinen Grenzen sind).

siehe oben, ist aber kein xp...


Original geschrieben von MasterElwood
Ich wiederhole:

Wer hat 2GB und kann testen, ob sich mit/ohne page performancemäßig was tut?


Ein bisschen Praxis nach so viel theorie wär nicht schlecht...

:D ich glaub, das werd ich beim server schön seinlassen...

zuhause hab ich zwar 2 512er und 2 256er riegel, aber das eine mobo hat nur 2 und das andere nur 3 slots...

GloomY
2004-07-30, 14:00:58
Argh, bitte einfach nicht immer so ein Gequarkse schreiben (nicht umbedingt auf die folgenden Quotes bezogen sondern allgemein an alle gerichtet) :|Original geschrieben von Lokadamus
mmm...

Gloomy meinte damit, dass der Ram nicht an einem Stück genutzt wird und es dadurch kleine Lücken gibt, die nicht zusammenhängen. Diese "freien" Lücken ergeben nachher eine Summe an freiem Speicher, der für Anwedung XYZ dicke ausreichen würde, aber aufgrund der weiten Entfernungen gar nicht benutzt werden kann (sprich, du brauchst 200 MB, 50 MB bekommst du ganz vorne und die restlichen 150 MB ganz hinten, sowas geht nie gut, weil die Sprungadressen zu gross werden dürften und dadurch keine Software ordentlich laufen kann).Ja, fast ;)
Das Problem ist, dass Applikationen vom Betriebssystem fast nie einzelne Bytes anfordern, sondern immer größere Stücke, also 10, 100 oder 1000 Bytes, teilweise auch im MB Bereich. Dieser Speicher wird eben für größere Datenstrukturen wie Arrays, Structs, Unions oder allgemein Objekte gebraucht. Hier ist ein zusammenhängender Speicherbereich absolut notwendig, weil die elementaren Zugriffsoperationen intern über Zeigerarithmetik ablaufen.
Original geschrieben von grestorn
Der Speicher, egal ob physisch oder virtuell, wird immer mit virtuellen Adressen verwaltet. Der Speicher kann nur innerhalb einer Applikation fragmentieren (da malloc()/free() in dem Heap der Applikation Lücken erzeugt), aber nicht für das gesamte OS.Du musst zwischen Adressbereich und Speicherbereich unterscheiden. Der Adressbereich ist für jeden Prozess verschieden (jeder hat seinen eigenen virtuellen Adressraum), aber der Speicherbereich ist trotzdem der gemeinsame RAM-Speicher bzw. das Page-File auf der Platte.

Was die Apllikation als Adressraum sieht, ist für die Speicherfragmentierung irrelevant. Hier geht es nur darum, was wo im RAM liegt und ob es zusammenhängende freie Bereiche gibt oder nicht.
Original geschrieben von grestorn
Also zieht dieses Argument sicher nicht für eine Auslagerungsdatei.Doch, weil du damit - wie erwähnt - einen größeren physikalisch adressierbaren Speicher bekommst. Du erziehlst den gleichen Effekt, wenn du mehr RAM-Speicher in deinen Rechner installierst. Du hast mehr physikalischen Speicherplatz, damit ist der Heap größer und die Wahrscheinlichkeit geringer, dass man dort keinen freien Speicherblock einer bestimmten Größe findet.
Original geschrieben von noid
32 bit sind doch 4Gbit? 32 Bit sind 32 Bit und 4 GBit sind 4 GBit. Und 32 Bit sind nicht 4 GBit.

Mit 32 Bit Adressen habe ich 2^32 Adressen (ein "4GiB Adressraum") und kann damit einen Speicherbereich von 2^32 Bytes = 4 GiB adressieren.

Bitte hier auch den obigen Hinweis beachten: Genau spezifizieren, wovon man redet und nicht irgendwelchen Blödsinn verzapfen. Vielen Dank :)
Original geschrieben von Lord Wotan
Ich habe XP Pro. Soll das nun heißen das Windows XP nicht mit >2Gib Speicher anfangen kann? Korrekt. edit: 2 GiB pro Prozess. Da du aber sehr wahrscheinlich nicht mehrere Prozesse mit viel Speicherverbrauch gleichzeitig laufen lässt, heisst das kurz gesagt: Ja.

GloomY
2004-07-30, 14:26:21
Original geschrieben von noid
[...]ich interpretiere das ganze nämlich so, dass [...]Interpretiere bitte nicht, das bringt nichts.
Original geschrieben von noid
edit: hier steht's
http://www.utexas.edu/computer/xp/

windows xp kann also locker mit 4GB umgehen. Was heisst "umgehen"? Drück' dich klar aus, was du meinst.

Klar hat ein 32 Bit Betriebssystem 2^32 Adressen. Davon werden aber maximal 2^31 Adressen für die Speicheradressierung des RAMs verwendet. Die andere Hälfte wird für Speicheradressierung von PCI und AGP Geräten, für das Einblenden von DLLs in den virtuellen Adressraum gebraucht usw.

Das ist der Knackpunkt.
Original geschrieben von noid
immerhin ist ne "prospektaussage" schon etwas mehr als auf den 2GB user-mode rumzuhaken, der nur pro task existiert.Es war nie von "pro Task" die Rede. Wenn schon dann pro Prozess (präziser). Aber das trifft hier auch nicht zu. Jeder Prozess hat seinen 4 GiB Adressraum, wovon maximal 2 GiB für die Adressierung von RAM-Speicher und Speicher im Page-File verwendet werden. MS spricht hier gleich nur von einem 2 GiB virtuellem Adressraum (s.u.), der für die Applikation verfügbar ist. Von der Applikation aus gesehen stimmt das nämlich, weil die andere Hälfte des virtuellen Speicherbereichs ja für andere Sachen reserviert ist und daher der Applikation nicht zur Verfüguing steht. Im Prinzip ist der virtuelle Adressraum schon 4 GiB groß, nutzen kann ein Prozess selbst maximal aber nur 2 GiB. (s.u.)
Original geschrieben von noid
jetzt weiss ich endlich woher die leute immer diese sperren haben. mir kommt das vor als ob jemand das thema virtueller speicher nicht verstanden hat.Das glaube ich aber auch... :|
Original geschrieben von noid
reicht ne ms seite? bitte....
http://support.microsoft.com/default.aspx?scid=kb;en-us;306824&Product=winxp http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx, Zitat:Windows XP Professional and Windows Server 2003 Memory Support.
The maximum amount of memory that can be supported on Windows XP Professional and Windows Server 2003 is also 4 GB. [...] The virtual address space of processes and applications is still limited to 2 GBEs sollte klar sein, dass damit kein Prozess mehr als 2 GiB RAM-Speicher ansprechen kann. Noch Fragen?

littlejam
2004-07-30, 14:38:55
Original geschrieben von GloomY
Mit 32 Bit Adressen habe ich 2^32 Adressen (ein "4GiB Adressraum") und kann damit einen Speicherbereich von 2^32 Bytes = 4 GiB adressieren.


Naja so ganz stimmt das auch nicht ;)
Du hast 2^32 Adressen, richtig.
Damit kannst du 2^32 Worte ansprechen, sobald ein Datenwort größer oder kleiner als 1 Byte (im Sinne von 8 Bit) ist verändert sich auch die absolute Datenmenge die du mit 2^32 Adressen ansprechen kannst.
Mit Fat32 kann man ja auch über 4 Gigabyte große Festplatten verwalten, dort sinds halt nicht Worte sondern Cluster.

Gruß

GloomY
2004-07-30, 14:46:14
Original geschrieben von littlejam
Naja so ganz stimmt das auch nicht ;)
Du hast 2^32 Adressen, richtig.
Damit kannst du 2^32 Worte ansprechen, sobald ein Datenwort größer oder kleiner als 1 Byte (im Sinne von 8 Bit) ist verändert sich auch die absolute Datenmenge die du mit 2^32 Adressen ansprechen kannst.Es wird aber nunmal seit sehr langer Zeit bei jeder ISA nur byteweise adressiert.

Das ändert im Übrigen nichts daran, dass ich mit 32 Bit 2^32 Adressen zur Verfügung habe. Mit 32 Bit kann man nämlich 2^32 verschiedene Kombinationen von 0 und 1 darstellen. Damit hat man 2^32 verschiedene Identifizierungsmöglichkeiten und damit eben 2^32 unterschiedliche Adressen.
Original geschrieben von littlejam
Mit Fat32 kann man ja auch über 4 Gigabyte große Festplatten verwalten, dort sinds halt nicht Worte sondern Cluster.

Gruß Die Betriebssystem verwenden zum Adressieren der Festplatten auch nicht 32 Bit sondern 36 Bit bzw. 48 Bit (WinXP SP1, 48 Bit LBA Adressierung (http://www.48bitlba.com/))

Im Übrigen wird hier nicht byteweise adressiert sondern Sektorweise (512 Byte). Dementsprechend ist das noch viel weniger mit der Adressierung seitens des Prozessors vergleichbar.

Steel
2004-07-30, 14:52:02
Original geschrieben von grestorn
Interessant, dass Windows den virtuellen Speicher automatisch einschaltet, wenn ihm der phys. Speicher ausgeht, wusste ich nicht.
Das tut es auch nicht!
Es passt die Grösse nur an, wenn das Swapfile NICHT ausgeschaltet ist.

Lokadamus
2004-07-30, 15:13:29
mmm...

Windows vergrössert aufjedenfall von sich heraus das Swapfile, egal, ob man min. und max. vorgegeben hat oder nicht (hatte die Grösse auf bescheidene 256 MB begrenzt und die haben für Söldner nicht ausgereicht). Ob Windows das Swapfile anwirft, wenn es deaktiviert ist, kann ich in einigen Tagen mal testen, meine Kiste ist zur Zeit zur Reperatur, XP Home wird das Test- OS sein ...

Grestorn
2004-07-30, 15:28:31
Original geschrieben von GloomY
Doch, weil du damit - wie erwähnt - einen größeren physikalisch adressierbaren Speicher bekommst. Du erziehlst den gleichen Effekt, wenn du mehr RAM-Speicher in deinen Rechner installierst. Du hast mehr physikalischen Speicherplatz, damit ist der Heap größer und die Wahrscheinlichkeit geringer, dass man dort keinen freien Speicherblock einer bestimmten Größe findet.

Moooment. Nur eine Applikation hat einen Heap, das OS hat nur freie und belegte Speicherseiten. Ein Applikation kann zusammenhängenden Speicher anfordern, Physisch kann der Speicher, den das OS dafür verwendet, auf völlig beliebigen Pages liegen, die nicht zusammenhängen müssen.

In so fern KANN es keine Probleme durch Speicherfragmentierung geben, weder im Pagefile noch im physischen Speicher. Die kleinse allokierbare Einheit ist hier immer die Speicherseite, und die wird wie gesagt nach belieben zugeordnet.

Wie bereits gesagt, nur Applikationen, die einen monolithischen Heap verwalten, bekommen u.U. Probleme mit ihrem Heap, wenn dieser zu sehr fragmentiert. Das hat aber weder etwas mit dem OS noch mit der Auslagerungsdatei zu tun.

GloomY
2004-07-30, 15:30:59
Anmerkung nochmal von mir: Win kann selbst 4 GiB Speicher verwalten. Aber jeder Prozess bekommt nur maximal 2 GiB. D.h. man kann Windows mit 4 GiB RAM betreiben und dann zwei Prozesse mit jeweils 2 GiB Speicherbedarf laufen lassen. Das geht ohne Probleme :)

Für jeden einzelnen Prozess ist aber bei 2 GiB Schluss. Mehr gibt's nicht.
Bei den Consumer-Windows Versionen wie 2000 und XP (non Server) hat man aber praktisch nie mehrere speicherfressende Prozesse gleichzeitig am Laufen. Daher wirkt die Beschränkung, die durch den Mangel an virtuellem Adressraum ensteht, nahezu wie eine Beschränkung des physikalischen Adressraums. ;(

littlejam
2004-07-30, 15:36:58
Original geschrieben von GloomY
Es wird aber nunmal seit sehr langer Zeit bei jeder ISA nur byteweise adressiert.

Dazu hab ich auch nix gesagt.
IMHO kann eine aktuelle 32 Bit-CPU theoretisch 16 GiB (2^32 * 32 Bit) adressieren, was aber nicht auf die restlichen Systemkomponenten zutreffen muss.
So genau weiß ich das dann aber wieder nicht, nagel mich nicht drauf fest.

Original geschrieben von GloomY
Das ändert im Übrigen nichts daran, dass ich mit 32 Bit 2^32 Adressen zur Verfügung habe. Mit 32 Bit kann man nämlich 2^32 verschiedene Kombinationen von 0 und 1 darstellen. Damit hat man 2^32 verschiedene Identifizierungsmöglichkeiten und damit eben 2^32 unterschiedliche Adressen.

Wo hab ich behauptet, dass du mehr oder weniger als 2^32 Adressen hast?

Original geschrieben von GloomY
Die Betriebssystem verwenden zum Adressieren der Festplatten auch nicht 32 Bit sondern 36 Bit bzw. 48 Bit (WinXP SP1, 48 Bit LBA Adressierung (http://www.48bitlba.com/))


Ich sprach von FAT32 und das kann 2^32 Cluster verwalten. Pro Cluster hast du dann X Byte und somit 2^32*X Byte pro Partition zur Verfügung.
Das hat nix mit der LBA Adressierung oder anderen Filesystemen zu tun.

Original geschrieben von GloomY
Im Übrigen wird hier nicht byteweise adressiert sondern Sektorweise (512 Byte). Dementsprechend ist das noch viel weniger mit der Adressierung seitens des Prozessors vergleichbar.

Es ist sehr wohl vergleichbar, nur die Dimensionen sind andere.
CPU -> 32 Bit Adressraum -> 32 Bit Wortlänge -> 2^32*32 Bit adressierbar.
FAT32 -> 32 Bit Adressraum -> X Byte Clustergröße -> 2^32*X Byte Adressierbar.

Das ist nur ein Beispiel, sicher gibt es noch Unterschiede. Ich meinte nur das Prinzip.

CPU und Filesystem begrenzen auch nicht als Einzige den Speicher (welcher auch immer), schließlich müssen ja auch genügend Drähte wohin geführt werden.

Gruß

GloomY
2004-07-30, 15:52:51
grestorm,

dadurch dass ich mehr physikalischen Speicher - in welcher Form auch immer (RAM oder im Page-File) bekomme - hat das OS auch mehr Speicherseiten zur Verfügung. Wenn vorher wegen zu wenig verfügbaren Speicherseiten nicht allozieren konnte, dann geht das mit mehr Speicher (und damit auch mit mehr Speicherseiten) garantiert besser.
Ich meine nicht Speicherfragmentierung innerhalb des virtuellen Adressraums eines Prozesses sondern Speicherfragmentierung des physikalischen Speichers. Und da hilft mehr Speicher garantiert ;)

Beispiel: Ein Rechner mit 1000 Bytes Speicher und einer Page-Größe von 100 Bytes, d.h. es exisiteren 10 Pages. Auf diesem Rechner laufen 6 Prozesse, wobei die ersten 4 jeweils nur eine Speicherseite zugewiesen bekommen haben (alle Daten innerhalb dieser Seite) und die beiden anderen Prozesse die restlichen 6 Pages. Wieviel davon auch immer innerhalb der Page von den Prozessen belegt wird, ist nicht relevant. Jede Page ist also zu einem gewissen Grad belegt bzw. enthält freien Speicher.

Wenn jetzt eine von den 4 ersten Prozessen mit jeweils einer Seite einen Speicher einen Speicherblock > 100 Bytes allozieren will, dann schlägt das fehl, weil das in die bereits dem Prozess zugewiesene Page nicht mehr reinpasst und das OS keine weitere Page mehr dem anfordernden Prozess zuweisen kann (und damit auch keinen Speicher).

Hätte der Rechner statt 1000 Bytes Speicher 2000 Bytes Speicher, dann gäbe es eben noch weitere 10 Pages, die noch frei zur Zuweisung verfügbar wären.


btw: Was meinst du mit "monolithischen Heap"?

littlejam: Ja, ich hab' zu schnell gelesen. Mit FAT32 hast du (vermutlich) Recht, dass dort Clusterweise adressiert wird und eben nicht umbedingt byteweise. Aber hier geht's eben um ISAs von CPUs und die adressieren nunmal seit Ewigkeiten byteweise.

Grestorn
2004-07-30, 16:36:31
Original geschrieben von GloomY
grestorm,

dadurch dass ich mehr physikalischen Speicher - in welcher Form auch immer (RAM oder im Page-File) bekomme - hat das OS auch mehr Speicherseiten zur Verfügung. Wenn vorher wegen zu wenig verfügbaren Speicherseiten nicht allozieren konnte, dann geht das mit mehr Speicher (und damit auch mit mehr Speicherseiten) garantiert besser.
Ich meine nicht Speicherfragmentierung innerhalb des virtuellen Adressraums eines Prozesses sondern Speicherfragmentierung des physikalischen Speichers. Und da hilft mehr Speicher garantiert ;)

Beispiel: Ein Rechner mit 1000 Bytes Speicher und einer Page-Größe von 100 Bytes, d.h. es exisiteren 10 Pages. Auf diesem Rechner laufen 6 Prozesse, wobei die ersten 4 jeweils nur eine Speicherseite zugewiesen bekommen haben (alle Daten innerhalb dieser Seite) und die beiden anderen Prozesse die restlichen 6 Pages. Wieviel davon auch immer innerhalb der Page von den Prozessen belegt wird, ist nicht relevant. Jede Page ist also zu einem gewissen Grad belegt bzw. enthält freien Speicher.

Wenn jetzt eine von den 4 ersten Prozessen mit jeweils einer Seite einen Speicher einen Speicherblock > 100 Bytes allozieren will, dann schlägt das fehl, weil das in die bereits dem Prozess zugewiesene Page nicht mehr reinpasst und das OS keine weitere Page mehr dem anfordernden Prozess zuweisen kann (und damit auch keinen Speicher).

Hätte der Rechner statt 1000 Bytes Speicher 2000 Bytes Speicher, dann gäbe es eben noch weitere 10 Pages, die noch frei zur Zuweisung verfügbar wären.
Natürlich hast Du recht, dass es problematisch wird, wenn dem OS die Pages ausgehen (dafür gibt's ja Pagefiles).

Andererseits verstehe ich nicht, was das mit "Fragmentierung" zu tun hat. Eine klassische Fragmentierung würde bedeuten, dass der Speicher schlecht ausgenutzt ist, weil zu viele Lücken entstanden sind und deswegen kein genügend großer zusammenhängender Speicherblock mehr vorhanden ist. Dadurch dass man den Speicher neu sortiert kann man die Fragmentierung wieder auflösen. Bei Programmen nennt man so einen Vorgang "Garbage Collection" (dabei werden auch nicht mehr benötigte Speicherbereiche freigegeben, aber eben auch die benötigten neu angeordnet, so dass sie zusammenhängend sind).

Bei Festplatten ist es eigentlich grundsätzlich egal ob es genügend große zusammenhängende freie Bereiche gibt. Die Dateien können ohnehin nach belieben auf die Platte verteilt werden, hier ist die kleinste Einheit der "Block", also das Pendant zu "Page" beim Speicher.

Dass man bei Festplatten dennoch defragmentiert liegt ausschliesslich daran, dass man die Kopfbewegungen minimieren möchte, nicht weil man irgendwelche große Dateien sonst nicht mehr speichern könnte.

Für den in Memory-Pages aufgeteilten physischen Speicher gilt das selbe: Fragmentierung spielt keine Rolle... und da es keinen mechanischen Kopf gibt, spielt es überhaupt keine Rolle, ob die Seiten eines Prozesses nun quer über den Speicher verteilt sind oder unmittelbar aneinander liegen.
Original geschrieben von GloomY
btw: Was meinst du mit "monolithischen Heap"?

Nun, bei klassischen Laufzeitumgebungen von Programmiersprachen war es üblich, dass man beim Kompilieren eine Größe des Heaps vorgegeben hat. Das Laufzeitsystem hat beim Programmstart dann diesen Speicher vom OS angefordert. Innerhalb des Programms fordert der Programmierer dann Speicher vom Laufzeitsystem an (z.B. mit malloc() oder new) und gibt ihn später wieder frei. Diese Speicherblöcke werden aber immer auf dem programmeigenen Heap vom Laufzeitsystem reserviert, das OS hat damit nichts mehr zu tun.

In diesem Heap, den ich monolithisch nenne, weil er eine durchgehende Adressierung hat (keine Seiten), kann es sehr schnell zur Fragmentierung kommen, was eben zur Folge hat, dass keine ausreichend große, zusammenhängende Speicherblöche mehr zur Verfügung stehen, obwohl der gesamte freie Speicher auf dem Heap eigentlich ausreichend wäre.

Bei modernen Laufzeitsystemen passiert das nicht mehr, da bei Bedarf neuer Heap Speicher vom OS angefordert wird, welcher dann wieder auf neuen Pages liegen kann.

Im übrigen kann natürlich der Adressraum EINER Page fragmentieren und damit ineffizient genutzt werden.

GloomY
2004-07-31, 00:02:26
Original geschrieben von grestorn
Natürlich hast Du recht, dass es problematisch wird, wenn dem OS die Pages ausgehen (dafür gibt's ja Pagefiles).Genau. Meine Aussage bezog sich darauf, dass manche Programme ohne Pagefile nicht laufen.
Original geschrieben von grestorn
Andererseits verstehe ich nicht, was das mit "Fragmentierung" zu tun hat. Eine klassische Fragmentierung würde bedeuten, dass der Speicher schlecht ausgenutzt ist, weil zu viele Lücken entstanden sind und deswegen kein genügend großer zusammenhängender Speicherblock mehr vorhanden ist.In dem Beispiel ist in jeder Page im Prinzip noch Platz, aufsummiert würde das durchaus für die benötigte Speichermenge reichen.
Original geschrieben von grestorn
Dadurch dass man den Speicher neu sortiert kann man die Fragmentierung wieder auflösen. Bei Programmen nennt man so einen Vorgang "Garbage Collection" (dabei werden auch nicht mehr benötigte Speicherbereiche freigegeben, aber eben auch die benötigten neu angeordnet, so dass sie zusammenhängend sind).Das kann man nur mit einer Runtime Library machen, die zur Laufzeit arbeitet und mit der ich die Speicherbereiche verschieben kann. Und auch da sind dem Vorgang Grenzen gesetzt.

Wenn ich irgendein Objekt alloziere, dann bekomme ich einen Zeiger darauf zurückgeliefert. Damit ist die Position fest im virtuellen Adressraum festgelegt. Wenn ich nun den Speicherbereich verschieben will, muss ich natürlich auch sämtliche Zeiger darauf verändern. Das kann aber kritisch werden, weil man eben teilweise Konventionen haben kann, was an welcher Adresse im Speicher liegt. Wenn man das verschiebt und sämtliche Zeiger abändert, kann es trotzdem noch sein, dass man auf die Ursprüngliche Adresse zugreift.

Imho gibt es zumindest in C keine Möglichkeit der Speicherfragmentierung zu entweichen. Bei Systemen mit Garbage Collektoren wie Java (eventuell auch C++) kann das Problem der Fragmentierung eventuell gemindert werden.
Original geschrieben von grestorn
Für den in Memory-Pages aufgeteilten physischen Speicher gilt das selbe: Fragmentierung spielt keine Rolle... und da es keinen mechanischen Kopf gibt, spielt es überhaupt keine Rolle, ob die Seiten eines Prozesses nun quer über den Speicher verteilt sind oder unmittelbar aneinander liegen.Ja, aber die Anzahl der Pages bzw. die Speichermenge hat sehr wohl einen Einfluss.
Original geschrieben von grestorn
Nun, bei klassischen Laufzeitumgebungen von Programmiersprachen war es üblich, dass man beim Kompilieren eine Größe des Heaps vorgegeben hat. Das Laufzeitsystem hat beim Programmstart dann diesen Speicher vom OS angefordert. Innerhalb des Programms fordert der Programmierer dann Speicher vom Laufzeitsystem an (z.B. mit malloc() oder new) und gibt ihn später wieder frei. Diese Speicherblöcke werden aber immer auf dem programmeigenen Heap vom Laufzeitsystem reserviert, das OS hat damit nichts mehr zu tun.

In diesem Heap, den ich monolithisch nenne, weil er eine durchgehende Adressierung hat (keine Seiten), kann es sehr schnell zur Fragmentierung kommen, was eben zur Folge hat, dass keine ausreichend große, zusammenhängende Speicherblöche mehr zur Verfügung stehen, obwohl der gesamte freie Speicher auf dem Heap eigentlich ausreichend wäre.

Bei modernen Laufzeitsystemen passiert das nicht mehr, da bei Bedarf neuer Heap Speicher vom OS angefordert wird, welcher dann wieder auf neuen Pages liegen kann.

Im übrigen kann natürlich der Adressraum EINER Page fragmentieren und damit ineffizient genutzt werden. Wieso ist das auf eine Page beschränkt?

Grestorn
2004-07-31, 13:45:18
Original geschrieben von GloomY
Das kann man nur mit einer Runtime Library machen, die zur Laufzeit arbeitet und mit der ich die Speicherbereiche verschieben kann. Und auch da sind dem Vorgang Grenzen gesetzt.
Jo, Deine Ausführungen sind mir schon alle klar, was GC und Sprachen in denen das geht oder nicht... :) Ich wollte Dich nicht belehren, sondern nur die Problematik Fragmentierung und ihre Lösungsmöglichkeiten weiter beleuchten.
Original geschrieben von GloomY
Imho gibt es zumindest in C keine Möglichkeit der Speicherfragmentierung zu entweichen. Bei Systemen mit Garbage Collektoren wie Java (eventuell auch C++) kann das Problem der Fragmentierung eventuell gemindert werden.
Ja, aber die Anzahl der Pages bzw. die Speichermenge hat sehr wohl einen Einfluss.
Java macht automatisch GC und das sehr effizient. in C++ gibt es nach wie vor einen normalen Heap, der aber dynamisch über das OS erweitert wird (aber die allokierten Heap-Blöcke bleiben monolithisch).

Man könnte zwar theoretisch in C++ eine SmartPointer Klassenbibliothek bauen, die eine Art "virtuelle Adressen" benutzt und dann intern tatsächlich eine Defragmentierung erlaubt, aber ich weiß nicht, ob es so etwas gibt. Die SmartPointer Implementierungen, die ich kenne, kümmern sich lediglich um das automatische Freigeben nicht mehr benötigter Speicherblöcke.

Original geschrieben von GloomY
Wieso ist das auf eine Page beschränkt?
Ich meinte nicht, dass sich Fragmentierung auf eine Page beschränkt, sondern dass eine Fragmentierung INNERHALB einer Seite auftreten kann... natürlich gilt das für jede Seite, nicht nur eine bestimmte.

noid
2004-08-02, 07:39:00
Original geschrieben von GloomY
32 Bit sind 32 Bit und 4 GBit sind 4 GBit. Und 32 Bit sind nicht 4 GBit.

Mit 32 Bit Adressen habe ich 2^32 Adressen (ein "4GiB Adressraum") und kann damit einen Speicherbereich von 2^32 Bytes = 4 GiB adressieren.

Bitte hier auch den obigen Hinweis beachten: Genau spezifizieren, wovon man redet und nicht irgendwelchen Blödsinn verzapfen. Vielen Dank :)
Korrekt. edit: 2 GiB pro Prozess. Da du aber sehr wahrscheinlich nicht mehrere Prozesse mit viel Speicherverbrauch gleichzeitig laufen lässt, heisst das kurz gesagt: Ja.

wenn du in der lage wärst zusammenhänge zu verstehen, dann wäre dir aufgefallen:
mein satz bezieht sich direkt auf einen andren post in dem behauptet wird, dass 32bit adressierung nur auf 2G möglichkeiten kommt.
weiterhin ist es kleinkariert (!) task als unpräzise hinzustellen. es heisst ja auch nicht "jump PSS".

hauptsache mal den guru raushängen lassen...

Lokadamus
2004-08-05, 20:28:55
Original geschrieben von Steel
Das tut es auch nicht!
Es passt die Grösse nur an, wenn das Swapfile NICHT ausgeschaltet ist. mmm...

Habs getestet, entweder ist mein Home defekt oder du irrst dich: 32 KB gross (http://home.arcor.de/t-schuermann/3dc/Swap.PNG). Unten in der Leiste kann man 3 Programme sehen, wobei Söldner selber sich schon irgendwie abgeschossen hat (war wohl schon zu lange ausm Fenster von Söldner draussen oder der Screenshot hat Söldner gekillt). Das, was von Söldner jetzt noch läuft, ist der Server und der braucht mal eben ca. 440 MB, wenn keiner oder 2 Personen drauf sind, die lange gelbe Linie am Anfang und am Ende sind die 440 MB, so kann jeder sehen, das noch irgendwas "Grosses" dazwischen war ...

Steel
2004-08-05, 22:37:45
Original geschrieben von Lokadamus
mmm...

Habs getestet, entweder ist mein Home defekt oder du irrst dich: 32 KB gross (http://home.arcor.de/t-schuermann/3dc/Swap.PNG). Unten in der Leiste kann man 3 Programme sehen, wobei Söldner selber sich schon irgendwie abgeschossen hat (war wohl schon zu lange ausm Fenster von Söldner draussen oder der Screenshot hat Söldner gekillt). Das, was von Söldner jetzt noch läuft, ist der Server und der braucht mal eben ca. 440 MB, wenn keiner oder 2 Personen drauf sind, die lange gelbe Linie am Anfang und am Ende sind die 440 MB, so kann jeder sehen, das noch irgendwas "Grosses" dazwischen war ...
Die Auslagerungsdatei wird auch angezeigt, wenn sie deaktiviert ist.

Aber hast Du denn mal auf der Platte nachgeschaut, ob da tatsächlich ein Swapfile gelegen hat?
Bei mir hat er nämlich keins erstellt.

Lokadamus
2004-08-05, 23:42:23
mmm...

Nö, in Anbetracht der Lage, das Söldner plötzlich gekillt wurde, hätte Windoof das Swap eh gekillt. Kann ich morgen nochmal testen, aber ich würde das Swapfile nicht deaktivieren, eher einen sehr kleinen Bereich zuweisen und gut ist, bevor es just for Fun "wichtige" Processe beendet ...

Steel
2004-08-06, 04:38:21
Spätestens mit Doom3 hat sich das Abschalten eh erledigt, da das einen !enormen! Speicherverbrauch hat...

Lokadamus
2004-08-06, 05:46:40
mmm...

So, wenn ich das Swapfile deaktiviere, hab ich gar nicht mehr das Swapfile (nichtmal eine Datei mit 0 Byte ist da). Windows selber lügt bei der Behauptung, es würde das Swapfile vergrössern und schiesst dafür einfach den Task, der mehr Speicher will, ab => ich hab keine Ahnung, wie ihr mit deaktiviertem Swapfile, aber 100% Speicherauslastung überhaupt rumwerkeln könnt. Entweder lügt ihr alle in dem Punkt rum, dass ihr den Speicher voll auslastet oder ihr lastet den Speicher nicht zu 100 % aus, anders kann ich mir das Verhalten nicht erklären ...

Steel
2004-08-06, 18:27:44
Du brauchst nur 7Zip im Benchmark Modus starten (hohe Kompression) und dann Far Cry.
Dann hängt sich spätestens nach einer Minute das System auf.

Ich weis auch nicht, wie das ohne Swapfile laufen soll - weil FarCry z.B. auslagert wie blöd.

Duran05
2004-08-11, 02:35:35
Schaut euch mal den Artikel an: http://www.computerbase.de/artikel/hardware/arbeitsspeicher_chips/512mb_1gb_2gb/

Dort wird zwar ein Vergleich zwischen 512 MB, 1 GB und 2 GB RAM aufgeführt - dieser wurde allerdings auch mit aktivierter und deaktivierter Auslagerungsdatei durchgeführt.

Selbst bei 2 GB RAM ist kein wirklicher Vorteil bei deaktivierter Auslagerungsdatei zu erkennen!

GloomY
2004-08-12, 02:56:48
wenn du in der lage wärst zusammenhänge zu verstehen, dann wäre dir aufgefallen:
mein satz bezieht sich direkt auf einen andren post in dem behauptet wird, dass 32bit adressierung nur auf 2G möglichkeiten kommt.In deinem Post (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=2072911&postcount=52) benutzt du nicht mal einen Quote, du schreibst einfach:
32 bit sind doch 4Gbit?Ich muss sagen, dass daraus der Zusammenhang mit einem anderen Post sofort hervorgeht... :eyes:


Zum Inhalt:

1 = 2

ist nunmal genauso falsch wie

32 bit = 4000000000 bit

Da gibt's nichts zu diskutieren oder zu interpretieren. Gleichheit ist hier nicht gegeben. Zumal es in dem Zusammenhang 4 GByte (bzw. wenn man genau ist 4 GibiByte) heissen muss, nicht 4 Gbit.
weiterhin ist es kleinkariert (!) task als unpräzise hinzustellen. es heisst ja auch nicht "jump PSS".
hauptsache mal den guru raushängen lassen...Ich bin's gewöhnt, mich präzise auszudrücken und nicht *zensiert* daherzureden. Genau das ist im Übrigen das Problem hier in dem Thread: Keiner sagt genau, was er meint, daraufhin reden viele aneinander vorbei, aber alle wollen immer mitreden...

Wenn man sich klar ausdrückt, was man meint, dabei fest definierte Begriffe verwendet und sich an die Aussagenlogik hält, dann kann da kaum was schief gehen. =)

btw: Ich war es nicht, der diesen Guru-Status haben wollte...

noid
2004-08-12, 08:21:01
man kann es auch auf die spitze treiben. und wenn ich mit 2^32 jeweils ein bit adressieren würde, dann wären es auch keine Gbyte. wenn du schon soviel wert drauf legst, dann aber bitter selber präzise sein.
es stand ja nie da wie und was wir adressieren. oder sollen wir _alles_ explizit hinschreiben?

HOT
2004-08-12, 09:47:57
Hmm.. Ich versteh nicht so ganz, was die Aufregung und das Gezanke soll ;)
Windoof benötigt die Auslagerungsdatei, um eben nicht benötigte Daten auszulagern. Das hat jetzt nix damit zu tun ob der Speicher reichen würde, sondern man nehme es so hin, das Windows ohne Auslagerung einfach nicht richtig laufen kann. Windows lagert ja alles aus, was gerade nicht gebraucht wird, auch seinen eigenen Krempel, eben um möglichst viel Speicher zu Verfügung zu stellen (physikalischen+virtuellen). Einige Programme, die auf Windows programmiert sind, laufen garnicht erst ohne den Auslagerungsmechanismus, Windows eigentlich schon, wenn auch sehr ineffizient. Ist eben auch eine Sache der Optimierung. Unter Linux/Unix gilt ähnliches, es gibt nur den Unterschied, dass Linux immer erst versucht, den Speicher zu füllen, bevor es auslagert, beide "Taktiken" haben ihre Vor- und Nachteile - man kann also nicht pauschal sagen, dass Unix/Linux "besser" arbeitet in der Hinsicht (überhaupt haben Unix/Linux nur einen wirklichen performance-Vorteil: Die Optimierung auf die Verarbeitung von mehreren gleichzeitig laufenden Threads). Die Grösse der Auslagerungsdatei muss natürlich am besten so gewählt werden, dass Windows die Auslagerung vollständig und an einem Stück gemacht werden kann, also eine dynamische Auslagerungsdatei ist doll, bringt aber rein garnix, ausser, dass mehrere verdammt grosse Prozesse dort ausgelagert werden können, ohne dass der User was ändern muss. Eine Sicherheitseinstellung quasi oder notwendiges Übel für speicherintensive Programme ;)
Die Auslagerungsdatei kann wird überigens nicht mit dem gesamten Speicher adressiert, sondern hat eine eigene Adressierung. Sie kann aber als Erweiterungs-Speicher z.T. deklariert werden, eben genau bis die 2GiB voll sind (oder bis das Doppelte des physikalischen Speichers, ich mein da gäbs auch ne Grenze). Das ist aber nicht zu verwechseln mit der Grösse der Auslagerungsdatei bitte! Die kann auch 10GB gross sein, wenn das Dateisystem das zulässt. Windows kann überigens auch 3GB physikalischen Speicher verwalten, das ist dann aber eine ähnliche Parallelverwaltung, wie in der Auslagerungsdatei und deshalb laaaangsaaaam :)
Wer sein System kennt und nicht oft mehrere riesiger Prozesse benutzt, der sollte die Auslagerungsdatei sinnvollerweise begrenzen, um Festplattenfragmentierung zu umgehen. Für ein normales 512MB - 1GB RAM bestücktes System, das zum Spielen benutzt wird, ist IMHO 512MB die optimale Grösse der Auslagerung, denn so hat man noch "Notpuffer" neben den ausgelagerten Daten. Sogar SWG lässt sich in der Konfiguration absolut ruckelfrei spielen, und das will was heissen ;)
Wer jetzt oft Photoshop oder andere Multithreadprozesse nutzen möchte, bei denen sehr grosse Thread bei rumkommen, der benötigt zwingend eine grosse Auslagerungsdatei. Nehmen wir mal an, wir haben 512MB RAM und Photoshop hat 4 500MB+ Bilder-Prozesse geöffnet, dann verschwinden die nicht aktuellen in der Auslagerung, während das eine, welches gerade bearbeitet wird im Speicher hängt (wahrscheinlich im physikalischen und virtuellen). Bei zuwenig Auslagerung gibts jetzt, je nachdem wie gut sowas abgefangen wird, einen Crash oder eine Fehlermeldung ;)
Schaltet man jetzt um, kann man gerne mal ne Minute warten, bis der Auslagerungsprozess das Bild in den Speicher geladen hat und das im Speicher befindliche Bild in der Auslagerung verschwunden ist. Was ich damit sagen will, ist, dass es ein Unterschied ist, ob ein Prozess in der Auslagerung verschwindet oder im physikalischen+virtuellen Speicher gehalten wird. Es kommt also immer auf den Anwendungszweck an, wie man sowas einstellt.
Bei der Auslagerung ist im Normalfall auch vollkommen egal, denn die Prozesse sind eh nicht aktiv und die Prozessvorhersage von Windows ist mittlerweile ganz gut, so kommt es, dass man bei normaler Nutzung gearnicht viel von der Auslagerung mitbekommt. Nur in dem von mir geschilderten Extremfall weiter oben wird man wirklich etwas merken, da Windows hier auch die Hände gebunden sind. Das wird dauern ;)

Überigens hat Windows seit NT(ich glaub 4.0, 4.0 hat sie jedenfalls schon definitiv) eine Speicherdefragmentierung, die auch über die Auslagerung läuft, weswegen die Platte manchmal grundlos aktiv zu sein scheint.

So schlecht wie sowas oft geredet wird, ist dieses System garnicht durchdacht, ich würde aber sagen, dass es erst seit WinXP SP1 bzw. W2k SP2 wirklich zuverlässig funktioniert :)

harkpabst_meliantrop
2004-08-13, 00:29:13
Überigens hat Windows seit NT(ich glaub 4.0, 4.0 hat sie jedenfalls schon definitiv) eine Speicherdefragmentierung, die auch über die Auslagerung läuft, weswegen die Platte manchmal grundlos aktiv zu sein scheint.
Was genau soll da defragmentiert werden? Die Anordung der Auslagerungsdatei auf der Festplatte jedenfalls definitiv nicht. Weder in NT 4, noch in W2K noch in Win XP. Dafür braucht man Zusatzprodukte.

Auch die Beschränkung der Auslagerungsdatei auf eine feste Größe finde ich unter Windows einfach sinnlos. Selbst wenn sie bei einer nachträglichen Vergrößerung fragmentiert wird, ist das immer noch besser, als wenn einem prozess die Luft ausgeht. Die Änderung ist auch nicht permanent und spätestens nach dem nächsten Neustart hat man wieder eine kleinere, nicht fragmentierte Auslagerungsdatei. Wem das nicht passt, der hätte eben gleich einen höhere Untergrenze angeben oder gleich mehr physikalischen RAM zur Verfügung stellen müssen.

Der Vergleich mit der festen Auslagerungspartition unter Unix hinkt übrigens. Da gibt es für Swap ein eigenes Dateisystem, auf das direkt, ohne den Umweg einer Datei, geschrieben werden kann.

So schlecht wie sowas oft geredet wird, ist dieses System garnicht durchdacht, ich würde aber sagen, dass es erst seit WinXP SP1 bzw. W2k SP2 wirklich zuverlässig funktioniert :)
Ich nehme an, der Smiley soll Ironie ausdrücken?

HOT
2004-08-13, 08:13:05
Was genau soll da defragmentiert werden? Die Anordung der Auslagerungsdatei auf der Festplatte jedenfalls definitiv nicht. Weder in NT 4, noch in W2K noch in Win XP. Dafür braucht man Zusatzprodukte.


Ich meine den physikalischen Speicher damit. Die Auslagerungsdatei kann man sich bei Bedarf ja neu anlegen lassen, wird aber nicht nötig sein.


Auch die Beschränkung der Auslagerungsdatei auf eine feste Größe finde ich unter Windows einfach sinnlos. Selbst wenn sie bei einer nachträglichen Vergrößerung fragmentiert wird, ist das immer noch besser, als wenn einem prozess die Luft ausgeht. Die Änderung ist auch nicht permanent und spätestens nach dem nächsten Neustart hat man wieder eine kleinere, nicht fragmentierte Auslagerungsdatei. Wem das nicht passt, der hätte eben gleich einen höhere Untergrenze angeben oder gleich mehr physikalischen RAM zur Verfügung stellen müssen.


Genau eben nicht ;)
Die Auslagerung festzustellen ist für die meisten Anwendungezwecke sinnvoll, da Windows schlicht weniger die Festplatte bearbeitet bei Belastung und je weniger Festplattenaktivität desto besser. Wer viele grosse Prozesse braucht, sollte sie aber auf Variabel oder sehr gross einstellen, das hab ich aber alles schon geschrieben. Was genau gabs da nicht zu versehen? :|
Du wirst wohl kaum auf ein normales System mit der Feststellung der Auslagerugnsdatei abschiessen. Das Meldet sich schon vorher ;)


Der Vergleich mit der festen Auslagerungspartition unter Unix hinkt übrigens. Da gibt es für Swap ein eigenes Dateisystem, auf das direkt, ohne den Umweg einer Datei, geschrieben werden kann.


Ich nehme an, der Smiley soll Ironie ausdrücken?

Das ist jetzt ja voll der Unterschied :D
Im Klartext bedeutet das doch nur, dass die Unix Swap nicht flexibel ist. Stellt man sie auf 512MB ein, bleiben das 512MB, auch wenn die Swap zu Neige geht. Ist also ähnlich zu behandeln wie eine festgestellte Auslagerungsdatei (na ja fast, Windows vergrössert sie im Normalfall ja immer wenns net anders geht). Die ist ja auch nichts weiter als ein virtueller Prozessspeicher, auch eine Art Dateisystem auf dem Dateisystem.
Und nein, das war kein Ironiespmily, da wirklich beide Systeme ihre Vor- und Nachteile haben. Ich bin weiss Gott kein Windowsfan aber so schlcht, wie es gemacht wird, ist es einfach nicht.

HellHorse
2004-08-13, 09:07:36
Im Klartext bedeutet das doch nur, dass die Unix Swap nicht flexibel ist.
Sischa, sischa. Unix => es ist festgelgt wann was geswapt wird :ugly:
Falls wir von Linux 2.6 reden:
/proc/sys/vm/autoswappiness
/proc/sys/vm/swappiness
Toll wie viele Exprerten wir hier haben. :rolleyes:

HOT
2004-08-13, 12:39:21
Sischa, sischa. Unix => es ist festgelgt wann was geswapt wird :ugly:
Falls wir von Linux 2.6 reden:
/proc/sys/vm/autoswappiness
/proc/sys/vm/swappiness
Toll wie viele Exprerten wir hier haben. :rolleyes:

Das war jetzt wohl falsch verstanden würde ich sagen....
Die Swappartition ist eine feste Grösse, das wollt ich sagen.

HellHorse
2004-08-13, 15:49:55
Die Swappartition ist eine feste Grösse, das wollt ich sagen.
Du kannst unter Linux auch in ein File swappen, falls dich das glücklich macht...