Ich verwalte einen Dell R710-Server, der für einige sehr große Berechnungen der nichtlinearen Finite-Elemente-Analyse (FEA) verwendet wird. Gelegentlich benötigen diese Läufe mehr als 500 GB zugewiesenen Speicher. Da dieser Computer derzeit nur über 132 GB RAM verfügt, erfolgt diese zusätzliche Speicherzuweisung über die Auslagerungsdatei.
Die Auslagerungsdatei ist auf einem sich drehenden Festplattenarray aktuell und verursacht einen großen Engpass. Ich habe untersucht, wie der Speicher (288 GB) maximal genutzt und eine Intel 750 NVMe-SSD mit 400 GB als dedizierte Auslagerungsdatei hinzugefügt werden kann. Dies sollte einen Teil des E / A-Engpasses bei Auslagerungsdateien beseitigen, aber ich möchte sicherstellen, dass wir die Auslagerungsdatei nicht maximal nutzen und einen großen Lauf zum Absturz bringen.
Kann ich Windows anweisen, das HDD-Array als Failover für zusätzlichen Pagedisk-Speicherplatz zu verwenden, ohne den 800 GB Intel 750 für die verstandene maximale Auslagerungsgröße von 864 GB (3x 288 GB) zu erhalten? Gibt es eine Möglichkeit, die SSD als primär für die Auslagerungsdatei zu priorisieren? Vielen Dank.
Antworten:
Sie müssen keine Auslagerungsdatei auf dem HDD-Array haben. Sie können es einfach entfernen oder auf ein absolutes Minimum einstellen, wenn Sie Crash Dumps möchten (das Betriebssystem teilt Ihnen mit, wann Sie die Größe der einzelnen Auslagerungsdateien auf dem HDD-Array ändern). Angenommen, das Array ist der Speicherort des Betriebssystems.
Dadurch werden die Schreibvorgänge auf die SSD automatisch erzwungen, nachdem die Auslagerungsdatei des Betriebssystempartitionslaufwerks verwendet wurde.
Die Auslagerung der Auslagerungsdatei in einem Array hat Nachteile. Jeder Seitenschreibvorgang geht an einen Controller und durchläuft unnötigerweise die Logik der Controller-Karte, um zu bestimmen, auf welche Laufwerke diese Seite tatsächlich geschrieben werden soll. Eine Auslagerungsdatei ist von Natur aus ein temporärer Speicher, daher bietet RAID oder Array keinerlei Vorteile (insbesondere wenn ein schnelleres Subsystem, in diesem Fall SSD, verfügbar ist).
Jemand könnte fragen: "Was ist mit den großen Caches, die auf den meisten Array-Controllern zu finden sind?" Diese sind für Auslagerungsdateien wiederum nicht nützlich, da per Definition ausgelagert wird, was seit einiger Zeit nicht mehr gelesen wurde, sodass auf den Cache wahrscheinlich sowieso nicht zugegriffen werden kann, um die Auslagerungsdatei zurückzulesen. Eine SSD mit integriertem Basis-Cache ist in diesem Szenario schneller als ein Array-Cache.
In Ihrer speziellen Situation (FEA-Berechnungen) wird es etwas schwierig, wenn der Algorithmus regelmäßig den gesamten zugewiesenen Speicher umfassen muss. Dann wird die Auslagerungsdatei viel zurückgelesen. In diesem Fall könnte jeder große Cache auf einem Controller "helfen", abhängig von der Reihenfolge, in der Ihr Algorithmus auf den Speicher zugreift. Wenn dadurch mehr Zugriffssequenzen vom Typ LIFO (last in first out) verursacht werden, ist dies hilfreich. Wenn es zufällig ist, dann wahrscheinlich begrenzter Nutzen. Wenn es FIFO ist (first in first out), wird es wahrscheinlich weh tun.
Zufällige Microsoft MVP-Aussagen deuten darauf hin, dass schnellere Laufwerke automatisch bevorzugt werden. Obwohl meine empirischen Beobachtungen über die Jahre zeigen, dass das OS-Laufwerk bevorzugt wird. Mit der obigen Konfiguration werden also beide Ihre Anliegen angesprochen.
quelle