Wenn der Speicher byteadressierbar ist, sollte es nicht so sein
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
Eine allgemeine Google-Suche sagt 8 GB oder 16 GB max.
Wie ist das wahr? Wie hängt es auch vom Betriebssystem ab?
Wenn der Speicher byteadressierbar ist, sollte es nicht so sein
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
Eine allgemeine Google-Suche sagt 8 GB oder 16 GB max.
Wie ist das wahr? Wie hängt es auch vom Betriebssystem ab?
Antworten:
Es gibt mehrere Verschachtelungsfaktoren.
Zunächst einmal werden Sie niemals in der Lage sein, ein System zusammenzustellen, das über 2 64 Bytes (16 Exibytes) physischen RAM verfügt.
Zweitens bedeutet eine Architektur, die 64-Bit-Zeiger verwendet, nicht, dass alle Bits dieser Zeiger tatsächlich verwendet werden. Insbesondere verwenden aktuelle x86-64-CPUs (auch bekannt als AMD64- und Intels aktuelle 64-Bit-Chips) 48-Bit-Adressleitungen (AMD64) und 42-Bit-Adressleitungen (Intel) (siehe http://en.wikipedia.org/wiki) / X86_64 # Virtual_address_space_details ), was theoretisch 256 Terabyte physischen RAM erlaubt.
Zweitens haben Motherboards ihre eigenen Grenzen, wie viel RAM sie sowohl physisch als auch logisch unterstützen können. Physikalisch wird es nur so viele Slots für RAM geben. Was die "logischen" Grenzen angeht, verstehe ich nicht ganz, warum dies bei x86-64 immer noch der Fall ist (der Speichercontroller wurde längst in die CPU selbst migriert), aber da ist er. Vermutlich werden an den Adressleitungen Ecken abgeschnitten, um ein paar Dollar bei Design und Herstellung zu sparen.
Drittens kann ein Betriebssystem interne Einschränkungen dahingehend haben, wie viel RAM effizient unterstützt werden kann. Dies dient zum Teil dazu, zu verhindern, dass übermäßig große Datenstrukturen benötigt werden, um die Nutzung von Speicher zu verfolgen, der nicht wirklich vorhanden ist. Zuletzt habe ich überprüft, dass Linux 128 TB virtuellen Adressraum pro Prozess auf x86-64 zulässt und theoretisch 64 TB physischen RAM unterstützen kann.
Viertens begrenzen einige Betriebssysteme (z. B. Windows) künstlich, wie viel RAM als Taktik verwendet werden kann, damit Benutzer auf teurere Versionen aktualisieren, wenn sie mehr RAM möchten (Windows 7 Starter ist auf 2 GB, Home Basic auf 8, Home Premium beschränkt) bis 16 und Professional und höher sind 192 GB, und Windows Server-Versionen haben weit höhere Grenzwerte).
Wenn Sie MS Windows verwenden, ist der maximale Arbeitsspeicher vom Betriebssystem abhängig.
Für Windows 7 sind die Höchstwerte:
Windows Server 2008 reicht von 8 GB für Einsteiger bis zu 2 TB für den Anfang der Zeile.
Eine vollständige Liste finden Sie unter http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx .
Diese Grenzwerte dienen hauptsächlich Marketingzwecken. Indem sie die billigeren Versionen einschränken, machen sie die High-End-Versionen (vergleichsweise) attraktiver.
Ich denke, dass neuere Linux-Builds mit rund 32 TB RAM funktionieren, obwohl dies nicht von allen Hardwarekomponenten unterstützt wird.
Ein 64-Bit-Computer sollte in der Lage sein, bis zu 2 64 adressierbare Einheiten zu adressieren (in Architekturen, die in den letzten Jahrzehnten entwickelt wurden, sind adressierbare Einheiten ausnahmslos Bytes, auch bekannt als Oktette). Wenn Sie ein "Gigabyte" als 2 30 adressierbare Einheiten definieren, sind 2 34 Gigabyte eine weitere Möglichkeit, die gleiche Anzahl auszudrücken.
Welche Google-Suche hat diese lächerlichen winzigen Ergebnisse hervorgebracht? Vielleicht hat die Seite, die Sie gefunden haben, über die Menge an RAM gesprochen, die Sie in einigermaßen günstigen Boxen eines bestimmten Modells kaufen können - Sie können definitiv viel mehr RAM haben (natürlich alle adressierbar), auch in Boxen, die alles andere als sehr teuer sind .
Mit Sicherheit können und können Betriebssysteme die Größe des adressierbaren Speichers einschränken (z. B. indem sie die Größe der Seitentabellen auf ein konfigurierbares Maximum beschränken, das durch Neukompilieren oder anderweitiges Neukonfigurieren des Betriebssystems festgelegt werden kann - das ist schwierig spezifischer sein, ohne sich auf eine bestimmte Gruppe von Betriebssystemen zu konzentrieren).
Sie können so viel RAM haben, wie Sie möchten, aber es hängt alles vom Betriebssystem und der Anwendung ab, die Sie ausführen - wie jemand anderes angegeben hat.
Wenn Sie eine CPU-intensive Anwendung ausführen, die sich auch intensiv mit anderer Hardware wie Ihrer Festplatte befasst, sollten Sie eine zweite CPU auf einem vollständig separaten Computer in Betracht ziehen. Beispiel: Eine Datenbankanwendung und ein E-Mail-Server werden auf separaten Computern ausgeführt.
Es spielt keine Rolle, wie viel Speicher Sie haben - auf dem heutigen Markt wird das gesamte System zum Stillstand kommen. Einzelne CPUs können das Multitasking einfach nicht so bewältigen, wie Sie es erwarten.
Für einen einzelnen Computer mit viel Speicher ist es besser, aber nicht so hervorragend, wenn mehrere Anwendungen auf demselben System ausgeführt werden - unabhängig von der installierten Speichermenge. Dies ist genau der Grund, warum große Unternehmen nicht nur die 64-Bit-Architektur verwenden, um mehr Speicher zu adressieren, sondern auch den Lastausgleich für zwei oder mehr Server durchführen.
Wenn Sie die Leistung wirklich ernst nehmen, sollten Sie auf jeden Fall auf 64-Bit umsteigen, aber auch einen Lastenausgleich mit einem zweiten Server in Betracht ziehen.
Ich war auf diesem Weg und habe eine einzelne Maschine mit maximalem RAM konfiguriert. Wenn mehrere Anwendungen ausgeführt werden, läuft es dennoch wie ein Hund. Das liegt daran, dass die CPU selbst einfach nicht damit umgehen kann.
Mein Rat ist, Ihre Dollars auf dem Speicher zu speichern und einen zweiten Server zu kaufen und dann die zwei zu laden, auszugleichen. Es ist viel einfacher und lässt sich einfach erweitern, wenn Sie mehr Rechenleistung und Geschwindigkeit benötigen.
Eine Maschine mit 64-Bit-Architektur kann auch mit 32-Bit-Software umgehen, aber bei einer 32-Bit-Maschine ist die Anzahl der Anwendungen auf 32-Bit-Anwendungen oder weniger beschränkt - einschließlich des Betriebssystems.
Da der gesamte Markt sowohl hard- als auch softwaremäßig auf 64-Bit umsteigt, würde ich empfehlen, langfristig auf 64-Bit umzusteigen. Vergessen Sie jedoch die Idee, alles auf eine einzige Maschine mit einer großen Menge Arbeitsspeicher zu packen, da Sie enttäuscht sein werden.
Wenn Sie sich nicht sicher sind, was "Load Balancing" ist, dann googeln Sie es.
Ich denke, es kann mehr als ein Exabyte "EB" dauern.
Schauen Sie sich an, dieser 32-Bit-Prozessor kann 2 32 B = 4 GB, aber höchstens 3 GB aufnehmen, "weil sie 1 GB für umgekehrte Adressen sind".
Das bedeutet, 64-Bit-Prozessor kann 2 64 B = 16 EB nehmen, aber ich kann nicht, wie Adressen, die für umgekehrt gesperrt sind, verwendet werden. Wir können also sagen, dass ein 64-Bit-Prozessor mehr als 1 EB benötigt. und diese Spezifikation hängt nicht davon ab, welches Betriebssystem der PC verwendet hat oder welches Modell er hat.
Am Beispiel einer Intel- oder AMD-CPU gibt es verschiedene Einschränkungen sowohl für den physischen als auch für den virtuellen Speicher. Andere Leute haben über Einschränkungen der Hardware-Pinbelegung und der Hauptplatine gesprochen, aber es gibt auch interne Einschränkungen.
Ein Eintrag in der Terminalseitentabelle in der MMU enthält 52 signifikante Bits der physikalischen Adresse und kann theoretisch bis zu 4096 TB des physikalischen RAM abbilden.
Die MMU implementiert eine Seitentabelle mit 4 Ebenen, deren oberste Ebene aus 512 × 512 GB Einträgen besteht. Der virtuelle Speicher ist also auf 256 TB begrenzt.
Soweit ich weiß, implementieren alle 64-Bit-Betriebssysteme ein DMAP (eine Direktzuordnung), was sehr praktisch ist. Da der virtuelle Speicher jedoch auf 256 TB begrenzt ist, ist auch die Größe des DMAP begrenzt. Normalerweise sind 128 TB für den Benutzermodus und 128 TB für den Kernel reserviert. Von diesen 128 TB für den Kernel können bis zu die Hälfte für den DMAP reserviert werden. Aufgrund der Nützlichkeit des DMAP beschränken Betriebssysteme den physischen Speicher normalerweise auf das, was der DMAP verarbeiten kann.
Bei den meisten (allen?) 64-Bit-Betriebssystemen für Intel / AMD ist der unterstützte physische Speicher auf ungefähr 64 TB beschränkt, wobei 64 TB für den allgemeinen virtuellen Kernelspeicher und 128 TB für den virtuellen Benutzerspeicher verbleiben.
-
In den CPU-internen Caches ist die Anzahl der von ihnen gespeicherten physischen Adressbits ebenfalls begrenzt, da jedes zusätzliche Adressbit mehr Transistoren für das Cache-Tag aufnimmt. DRAM-Controller-Pin-Beschränkungen sind nicht unbedingt das letzte Wort, da der Speicher auch über DMI-Links adressiert werden kann.
Unterschiedliche CPU-Architekturen (z. B. ARM, PowerPC usw.) unterliegen unterschiedlichen Einschränkungen.