it-swarm.com.de

Partition gegen Datei gegen Leistung tauschen?

Was ist besser für die Leistung? Eine Partition, die sich näher an der Innenseite der Festplatte befindet, hat langsamere Zugriffszeiten, und wir müssen warten, bis das Laufwerk zwischen dem Betriebssystem und den Swap-Partitionen wechselt.

Andererseits umgeht eine Swap-Partition das gesamte Dateisystem und ermöglicht das direkte Schreiben auf die Festplatte, was schneller als eine Datei sein kann.

Was ist der Leistungskompromiss?

Inwieweit macht eine Swap-Datei mit fester Größe einen Unterschied?

Ist es ein Fall, dass der Wechsel zur Swap-Partition länger dauert, aber die Leistung auf der Swap-Partition besser ist als bei einer Swap-Datei?

67
Bill Gray
  1. Auf Festplatten ist der Durchsatz und die Suche zu Beginn der Festplatte häufig schneller, da diese Daten näher am äußeren Bereich der Festplatte gespeichert werden, der mehr Sektoren pro Zylinder aufweist. Das Erstellen des Swaps am Anfang der Festplatte kann daher die Leistung verbessern.

  2. Bei einem 2.6 Linux-Kernel gibt es keinen Leistungsunterschied zwischen einer Swap-Partition und einer unfragmentiert Auslagerungsdatei. Wenn eine Swap-Partition/-Datei durch Swapon aktiviert wird, der 2.6-Kernel findet heraus, auf welcher Festplatte die Swap-Datei gespeichert ist , damit er sich beim Auslagern nicht mit dem Dateisystem befassen muss überhaupt.

Wenn die Auslagerungsdatei nicht fragmentiert ist, ist es genau so, als ob sich an derselben Stelle eine Auslagerungspartition befindet. Oder anders ausgedrückt, Sie erhalten eine identische Leistung, wenn Sie eine Swap-Partition Raw verwenden oder sie mit einem Dateisystem formatieren und dann eine Swap-Datei erstellen, die den gesamten Speicherplatz ausfüllt, da auf beiden Datenträgern auf dieser Festplatte ein zusammenhängender Bereich zum Auslagern verwendet wird. was der Kernel direkt verwendet.

Wenn Sie also die Auslagerungsdatei erstellen, wenn das Dateisystem neu ist (wodurch sichergestellt wird, dass es nicht fragmentiert ist und sich am Anfang des Volumes befindet), sollte die Leistung mit einer Swap-Partition unmittelbar vor dem Volume identisch sein. Wenn man die Swap-Datei in der Mitte des Volumes mit Dateien auf beiden Seiten erstellt, kann man außerdem eine bessere Leistung erzielen, da weniger nach Swap gesucht wird.

Wenn die Swap-Datei unter Linux unfragmentiert erstellt und nie erweitert wird, kann sie zumindest bei normalen Dateisystemen wie ext3/4 nicht fragmentiert werden. Es werden immer die gleichen Plattenblöcke verwendet, die zusammenhängend sind.

Ich komme zu dem Schluss, dass der einzige Vorteil einer dedizierten Swap-Partition die garantierte Unfragmentierung ist, wenn Sie sie erweitern müssen. Wenn Ihr Swap niemals erweitert wird, erfordert eine auf einem neuen Dateisystem erstellte Datei keine zusätzliche Partition.

33
Shay

Eigentlich macht es keinen großen Unterschied, solange Sie nicht spärliche Dateien verwenden.

Wenn Sie eine "normale" Datei mit dd erstellen, wird die Datei (wenn überhaupt möglich) in einem einzigen Durchgang zugewiesen. Wenn Sie eine Datei mit geringer Dichte erstellen, werden Sie darauf hingewiesen, dass eine 10-GB-Datei herumliegt, aber nicht den gesamten Speicherplatz belegt. Ich bin mir nicht ganz sicher, ob mkswap den Speicherplatz sowieso nicht zuweisen wird, aber normalerweise wächst eine Auslagerungsdatei mit der Zeit und weist daher keinen kontinuierlichen Sektor (wie in einem Teil der Festplatte) zu, sondern weist nach Bedarf Blöcke zu, die dazu führen Fragmentierung im Laufe der Zeit (natürlich abhängig von Ihrer Nutzung der Festplatte)

Intern greift der Linux-Kernel mehr oder weniger direkt auf die zugrunde liegenden Blöcke einer Auslagerungsdatei zu - ich kann den Link momentan nicht finden, was unter der Haube passiert. Sie müssen mir in diesem Fall vertrauen, es sei denn, jemand findet etwas offizielleres. Alles, was ich mir jetzt einfallen lassen kann, ist:

dies gilt nur für die 2.6-Reihe von Linux-Kerneln.

Wenn Sie eine optimale Leistung wünschen (und was ist das wirklich? ... ist das Austauschen langsam, Punkt. Erhöhen Sie RAM, damit Sie nicht gegen tauschen.) Beste Leistung), möchten Sie eine Partition verwenden.

25
serverhorror

Dies ist eine interessante Frage und ich habe viel darüber gelesen. Im Allgemeinen ist eine Swap-Partition aufgrund des zugrunde liegenden Dateisystems besser als eine Datei. Wenn Sie jedoch immer die Größe Ihres Swaps erhöhen müssen, ist die Datei die bessere Option. Bis Kernel 2.4 wurde angenommen, dass eine Swap-Partition schneller als eine Datei ist, aber jetzt mit den Verbesserungen von Kernel 2.6 sind die Leistungen fast gleich.

Etwas, das ich auch im Internet gefunden habe.

http://www.go2linux.org/swap-file-vs-swap-partition

und

http://www.sunmanagers.org/pipermail/summaries/2005-November/006913.html

3
Viky

Ich denke, in der Phase, in der wir uns gerade befinden, sollte der Austausch wirklich als "letzter Ausweg" betrachtet werden, es sei denn, Sie betreiben einen Laptop mit einer Konfiguration, die die Daten in den Swap schreibt, wenn dieser angehalten/in den Ruhezustand versetzt wird. Am besten legen Sie genug RAM in eine Box), damit niemals Seiten auf die Festplatte übertragen werden.

Abgesehen davon ist eine Partition in Bezug auf die Leistung wahrscheinlich der bessere Weg, obwohl eine Datei flexibler ist. Stellen Sie einfach sicher, dass es sich um eine Spindel mit mehr als 7200 U/min handelt.

2
Matt Simmons

Wir denken bei unserer Arbeit, dass eine Partition ein besserer Ansatz ist, da eine Swap-Datei fragmentiert werden kann und die Fragmentierung den Swap-Zugriff verlangsamt. Das Definieren einer Swap-Datei mit statischer Größe macht natürlich fast dasselbe, aber dies scheint nur subjektiv ordentlicher zu sein.

Ist dieser Ansatz der einzig wahre Weg? Wahrscheinlich nicht, da die Praxis vor fast 10 Jahren gegründet wurde. Die einzige wesentliche Änderung in der Laufwerkstechnologie in den vergangenen Jahren ist die Komplexität der von uns verwendeten RAID-Controller (wir sind noch nicht reich genug für SSDs). Die Zunahme der Laufwerksgrößen bedeutet, dass die von uns erstellte Swap-Partition näher am Start des Laufwerks liegt als damals, als 18-GB-Laufwerke standardmäßig ausgeliefert wurden. Daher sind die Swap-Geschwindigkeiten sogar noch höher als früher.

Auf unseren ESX-basierten Windows-Systemen ist die Position der Auslagerungsdatei natürlich völlig umstritten. Es gibt so viele Virtualisierungsebenen zwischen der Auslagerungsdatei und den physischen Platten, dass es einfach keine Rolle spielt. Aber wir behalten es auf einer separaten Partition, weil das nur der Standard ist.

2
sysadmin1138

Die Verwendung einer Auslagerungsdatei benötigt möglicherweise etwas zusätzlichen Speicher für die Datei-zu-Speicher-Übersetzung. Wir sprechen von weniger als 1 MB Speicher pro 1 GB Swap. Der Dateisystem-Cache speichert KEINE ausgetauschten Daten zwischen, sondern nur die Organisationsdaten, die den größten Teil des zusätzlichen Speicherbedarfs ausmachen sollten.

Abgesehen davon bezweifle ich, dass Sie jede vernünftige Leistung verlieren werden, außer vielleicht einmal in 1000 Mal eine einzelne zusätzliche Kopfsuche.

Die witzige Tatsache, dass die Verwendung von zswap zusammen mit einer dynamisch expandierenden Auslagerungsdatei zu einer beeindruckenden Beschleunigung der Auslagerungsvorgänge bei sehr geringen Kosten führt, wenn sie nicht verwendet werden.

0
Crass Spektakel