Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Swappiness im Windows möglich?
- Ersteller Swappi
- Erstellt am
mensch183
Captain
- Registriert
- Jan. 2008
- Beiträge
- 3.666
Keinen oder kleinen Swap konfigurieren fällt unter Win7 viel eher auf als unter Linux. Man fällt damit auf Windows viel eher auf die Nase. Das heißt nicht, dass Linux da irgendwie klar besser ist. Es verhält sich in Voreinstelllung eben anders:
Bei Win7 in Voreinstellung kann man nur RAM+Swap Speicher allokieren. Bei Linux in Voreinstellung kann man nahezu unbegrenzt Speicher allokieren, also viel mehr als man hat, sprich viel mehr als RAM+Swap.
Nun ist es so, dass viele Programme eine ganze Menge mehr Speicher allokieren als sie dann tatsächlich nutzen. Bei Linux bekommt man erst ein Problem, wenn man versucht MEHR SPEICHER ZU NUTZEN als zur Verfügung steht. Bei Win7 bekommt man hingegen schon ein Problem, wenn man versucht MEHR SPEICHER ZU ALLOKIEREN als zur Verfügung steht.
Beide Varianten haben Vor- und Nachteile. Bei Linux kann man das Verhalten außerdem komplett anders konfigurieren kann, also auf Wunsch z.B. auch sehr Windows-ähnlich.
Bei Win7 in Voreinstellung kann man nur RAM+Swap Speicher allokieren. Bei Linux in Voreinstellung kann man nahezu unbegrenzt Speicher allokieren, also viel mehr als man hat, sprich viel mehr als RAM+Swap.
Nun ist es so, dass viele Programme eine ganze Menge mehr Speicher allokieren als sie dann tatsächlich nutzen. Bei Linux bekommt man erst ein Problem, wenn man versucht MEHR SPEICHER ZU NUTZEN als zur Verfügung steht. Bei Win7 bekommt man hingegen schon ein Problem, wenn man versucht MEHR SPEICHER ZU ALLOKIEREN als zur Verfügung steht.
Beide Varianten haben Vor- und Nachteile. Bei Linux kann man das Verhalten außerdem komplett anders konfigurieren kann, also auf Wunsch z.B. auch sehr Windows-ähnlich.
new Account()
Banned
- Registriert
- Mai 2018
- Beiträge
- 7.198
Inwiefern ist allokieren nicht nutzen?mensch183 schrieb:Bei Linux bekommt man erst ein Problem, wenn man versucht MEHR SPEICHER ZU NUTZEN als zur Verfügung steht. Bei Win7 bekommt man hingegen schon ein Problem, wenn man versucht MEHR SPEICHER ZU ALLOKIEREN als zur Verfügung steht.
Sobald ich speicher in einem Programme allokiert habe, kann ich ohne weiteres den reservierten Speicher nutzen.
Naja dazu kommt ja auch, dass Windows seine Prefetch-Sachen (also der Müll von Programmen, die ich schon wieder geschlossen habe) nicht so schnell freigibt und damit dann völlig sinnlos auch die SSD belasten würde, denn diese Daten würden in die pagefile.sys geschrieben werden, wenn ich derweil wieder etwas Anderes starte. Das ist das, was für mich sinnlos ist.
Aber wenn die nächste Playstation 24GB RAM verbaut hat, dann kann ich tatsächlich schonmal ins RAM-Regal greifen. Die Preise sind ja gut. Weiß halt noch nicht, obs vielleicht sogar ein 32GB-Kit wird. Was würdet ihr machen? Ich habe zurzeit diesen verbaut:
https://geizhals.de/g-skill-aegis-dimm-kit-16gb-f4-3000c16d-16gisb-a1474853.html?hloc=de
und auf 3066 getaktet im B450 Tomahawk.
Den gäbe es auch als 32GB-Kit nocheinmal zu holen:
https://geizhals.de/g-skill-aegis-dimm-kit-32gb-f4-3000c16d-32gisb-a1798024.html?hloc=de
Das Ergebnis sollte halt zur Lebensdauer meines Ryzen 5 2600 gut passen.
Aber wenn die nächste Playstation 24GB RAM verbaut hat, dann kann ich tatsächlich schonmal ins RAM-Regal greifen. Die Preise sind ja gut. Weiß halt noch nicht, obs vielleicht sogar ein 32GB-Kit wird. Was würdet ihr machen? Ich habe zurzeit diesen verbaut:
https://geizhals.de/g-skill-aegis-dimm-kit-16gb-f4-3000c16d-16gisb-a1474853.html?hloc=de
und auf 3066 getaktet im B450 Tomahawk.
Den gäbe es auch als 32GB-Kit nocheinmal zu holen:
https://geizhals.de/g-skill-aegis-dimm-kit-32gb-f4-3000c16d-32gisb-a1798024.html?hloc=de
Das Ergebnis sollte halt zur Lebensdauer meines Ryzen 5 2600 gut passen.
mensch183
Captain
- Registriert
- Jan. 2008
- Beiträge
- 3.666
Voraussetzung: Ein OS wie Windows oder Linux auf einer Plattform mit virtuellem Speicher und MMU.new Account() schrieb:Inwiefern ist allokieren nicht nutzen?
Pseudo-C ... mit p=malloc(1024*1024) hast du ein MB (jaja, eigentlich MiB=Mebibyte) virtuellen Speicher im Adressraum des Prozesses allokiert. Dem MB ist noch kein physischer Speicher zugeordnet. Es ist noch völlig unklar, wo genau die Daten landen würden, wenn man auf den Bereich was schreiben würde. Darüber macht sich das OS noch keinen Gedanken. Wozu auch? Der Bereich ist ja ungenutzt. Die Chancen sind groß, dass sowieso nicht alles verwendet wird. Wie das OS das MB bis dahin in seiner Rechnung "Wieviel RAM ist noch frei" behandelt, ist sehr unterschiedlich. Ganz grob, wirklich stark vereinfacht, kann man sagen: Windows zieht das MB schon ab, Linux nicht.
Benutzen heißt, dass du was vom mit p adressierten Bereich beschreibst, also Daten ablegst, die wieder lesbar sein sollen. Du sagts z.B. memset(p, 'X', 1024*512) um die erste Hälfte des MB zu beschreiben. Beim Schreibversuch fällt der MMU auf, dass es noch keine Zuordnung ("memory mapping") für die virtuelle Adressen auf physischen Speicher gibt und wirft page faults. Erst jetzt sucht der Kernel nach freiem, physischen Speicher, den er zum Abspeichern nutzen könnte. Hat er was gefunden, steht das Mappping (oder mehrere) virtuelle Adresse --> physische Adresse und die 512kB werden endlich ins RAM geschrieben. Dann hat unser Prozess 1 MB allokiert, aber nur 512kB davon genutzt. Für den Rest wird weiterhin kein physischer Speicher belegt.
Das ist die rosarote Wunschwelt. Klar will man das. Dummerweise brauch man viel mehr Ressourcen, um das sicherzustellen. Genau darüber stolpert der Threaderöffner mit seiner Swap-Verweigerung unter Win7.new Account() schrieb:Sobald ich speicher in einem Programme allokiert habe, kann ich ohne weiteres den reservierten Speicher nutzen.
Programme neigen dazu, viel mehr virtuellen Speicher anzufordern als sie nutzen. Die OSe in der Praxis haben somit die Wahl zwischen:
A) schon früh ohne Not Speichermangel melden. Programme bekommen nix mehr, obwohl noch massenhaft physischer Speicher frei ist, aber bereits ungenutzter, virtueller Speicher in Größe des verfügbaren physischen Speichers ausgegeben wurde.
B) sich erstmal problemfrei durchwurschteln, indem optimistisch den Programmen mehr virtueller Speicher zur Verfügung gestellt wird als physischer Speicher da ist. Damit fällt das OS allerdings evtl. 'auf die Fresse', wenn der physische Speicher wirklich nicht reicht - aber eben erst dann.
Windows geht traditionell den Weg A, konnte den dank "Virtualisierungskram überall" aber nicht durchhalten (ab Win Server 2008 R2?). Linux geht traditionell den Weg B, läßt sich aber umkonfigurieren, insb. auch auf Weg A mit feingranularer Einstellung, wieviel virtueller Speicher maximal rausgeben wird.
Ähnliche Themen
- Antworten
- 10
- Aufrufe
- 1.087
- Antworten
- 11
- Aufrufe
- 1.082
- Antworten
- 5
- Aufrufe
- 769
- Antworten
- 13
- Aufrufe
- 5.647