it-swarm.com.de

Was ist Swap-Speicher?

Ich verwende RAM zum Speichern einiger meiner Datenbanktabellen und die anderen werden auf der Festplatte gespeichert.

Heute habe ich erfahren, dass meine Prozesse Swap-Speicher verwenden. Was ist nun Swap-Speicher und wie kann ich feststellen, welcher Prozess Swap-Speicher verwendet, und wie kann ich verhindern, dass sie ihn verwenden?

30
developer

Wenn Ihnen der physische Speicher ausgeht, verwenden Sie den virtuellen Speicher, in dem die Daten im Speicher auf der Festplatte gespeichert werden. Das Lesen von der Festplatte ist um mehrere Größenordnungen langsamer als das Lesen aus dem Speicher. Dies verlangsamt also alles erheblich. (Der Datenaustausch zwischen realem und virtuellem Speicher wird "ausgetauscht". Der Speicherplatz auf der Festplatte ist "Speicherplatz austauschen".)

Wenn Ihre App "Swap verwendet", müssen Sie entweder weniger Speicher verwenden oder mehr RAM kaufen.

(Swap ist nützlich, da Anwendungen, die nicht verwendet werden, bis zur Verwendung auf der Festplatte gespeichert werden können. Anschließend können sie "ausgelagert" und wieder normal ausgeführt werden. Obwohl sie sich nicht im Speicher befinden, kann das Betriebssystem diesen Speicher verwenden für etwas anderes, wie den Festplatten-Cache. Es ist also eine sehr nützliche Funktion, aber wenn Sie nicht über genügend physischen Speicher verfügen, um Ihr Programm auszuführen, benötigen Sie definitiv mehr Speicher. Glücklicherweise ist Speicher heutzutage wirklich sehr, sehr billig.)

45
jrockway

Ein Computer verfügt über einen bestimmten physischen Speicher. Aber meistens wollen wir mehr. Also tauschen wir etwas Speicher auf der Festplatte aus.

Jedes Mal, wenn wir diesen Speicher benötigen, muss er wieder in den Speicher verschoben werden (ein anderes Teil wird ausgetauscht). Es gibt extrem intelligente Algorithmen, um die Verzögerung zu minimieren, aber manchmal müssen wir trotzdem warten.

Wenn Sie sich unter Windows den Task-Manager ansehen, können Sie die Fehlerseiten anzeigen. Hier wird angezeigt, wie oft eine Anwendung nach einem Speicherplatz fragt, der sich auf der Festplatte befand und ausgetauscht werden muss. Viele Seitenfehler = langsame Anwendung.

Dieser Prozess wird auf mehreren Ebenen angewendet. Eine Zusammenfassung von schnell zu langsam:

  • Auf CPU-Ebene gibt es Register. Dies ist der schnellste Speicher, aber die Menge ist begrenzt.
  • Auch auf der CPU befindet sich ein kleiner Speichercache. Hier wird ein kleiner Teil des laufenden Programms für den schnellen Zugriff gespeichert. Suchen Sie nach Algorithmen zur Vorhersage von Zweigen, wenn Sie mehr wissen möchten.
  • Manchmal befinden sich Caches der Ebene 2 zwischen der CPU und dem Hauptspeicher.
  • Die nächste Ebene ist der Hauptspeicher (RAM).
  • Das letzte und langsamste Level ist die Festplatte. Manchmal können Sie USB-Sticks als zusätzlichen Speicher verwenden.
7
Toon Krijthe
cat /proc/pid/smaps

Wenn Sie Swap nicht verwenden möchten, verwenden Sie keine Swap-Partition (kommentieren Sie die Zeile in /etc/fstab Aus). Dies verhindert jedoch, dass ein neuer Prozess gestartet wird, und führt dazu, dass Malloc fehlschlägt, wenn Sie keine mehr haben physikalischer Speicher. Das ist im Allgemeinen keine gute Idee ... nicht sehr sicher und nicht einmal sehr nützlich, da das Betriebssystem die heißen Seiten im Speicher hält und diejenigen, die in letzter Zeit nicht verwendet wurden, auf die Festplatte überträgt.

Eine andere Lösung könnte darin bestehen, die Datenbank so zu hacken, dass die Seiten im Speicher gespeichert werden (ich weiß, dass dies möglich ist, aber ich konnte Ihnen jetzt nicht genau sagen, wie), aber es ist trotzdem wahrscheinlich, dass Ihre Datenbank ein eigenes Swapping und verwendet Caching-Mechanismen.

Um zu wissen, was der Austausch ist und wie der virtuelle Speicher funktioniert ... Ich würde Ihnen empfehlen, sich einige Vorlesungen zum Betriebssystem anzusehen. Vielleicht kann die MIT Open Courseware) hilfreich sein.

3
fortran

Ich habe eine teilweise Antwort gefunden. Ein Swap-Speicher ist ein Speicherplatz auf der Festplatte Ihres Computers, den Betriebssysteme verwenden, um die Informationen, die sich tatsächlich auf dem RAM befinden), für eine andere Anwendung freizugeben. Dies sollte erfolgen, wenn der Das System benötigt Speicher für einen neuen Prozess und es gibt keinen, sodass wir sehen können, dass unser System möglicherweise keinen SWAP-Speicher benötigt, wenn es über genügend RAM] verfügt.

[~ # ~] Update [~ # ~]

Um herauszufinden, wo sich der Speicherplatz (oder der virtuelle Speicher) befindet, gehen Sie zum Task-Manager (STRG + ALT + ENTF) und aktivieren Sie ihn unter ANSICHT -> SPALTEN -> VIRTUELLER SPEICHER. Berechnen Sie nun einfach den Unterschied zwischen Speichernutzung und virtuellem Speicher. Hier ist auch eine Anleitung, wie Sie es sehen können, wenn Sie Vista ausführen: http://www.ehow.com/how_5067693_increase-swap-space.html

1
faya