Was ist nicht einheitlicher Speicherzugriff (NUMA)?

Last Updated: 2020-12-09
4.6
(5)
Zusammenfassung:NUMA, kurz für Non-Unified Memory Access, ist ein Computerspeicherdesign für Multiprocessing. Eine vollständige Einführung in NUMA finden Sie hier.

Definition

NUMA ist eine Multiprozessorarchitektur, bei der der Speicher in einen engen und einen entfernten Speicher unterteilt ist und die Speicherzugriffszeit von der Speicherposition relativ zum Prozessor abhängt.

Unter NUMA greifen Prozessoren schneller auf ihren lokalen Speicher zu als auf nicht-lokalen Speicher. Die Vorteile von NUMA sind auf bestimmte Workloads beschränkt, insbesondere auf Servern, auf denen Daten typischerweise stark mit bestimmten Aufgaben oder Benutzern verbunden sind.

Nicht gleichförmige Speicherzugriffssysteme sind fortschrittliche Serverplattformen mit mehreren Systembussen. Diese Plattformen können mehrere Prozessoren auf einem einzigen Board verwenden, und alle Prozessoren haben Zugriff auf den gesamten Speicher des Motherboards.

Die NUMA-Architekturen folgen in der Skalierung logisch einer SMP-Architektur (Symmetric Multiprocessing). Im Vergleich zu SMP lässt sich die NUMA-Architektur auf eine höhere Anzahl von CPUs skalieren.

Basiskonzept

Moderne CPUs laufen viel schneller als der von ihnen verwendete Hauptspeicher. In den frühen Stadien der Computer- und Datenverarbeitung läuft die CPU normalerweise langsamer als ihr Arbeitsspeicher. Die Begrenzung der Anzahl der Speicherzugriffe ist der Schlüssel, um hohe Leistung aus modernen Computern herauszuholen.

Der starke Anstieg der Größe des Betriebssystems und der Anwendungen, die auf dem Betriebssystem ausgeführt werden, überfordert jedoch oft diese Verbesserungen der Cache-Verarbeitung. Ein Multiprozessorsystem ohne NUMA verschlimmert das Problem noch.

NUMA versucht, dieses Problem zu beheben, indem für jeden Prozessor separater Speicher bereitgestellt wird, um Leistungseinbußen zu vermeiden, wenn mehrere Prozessoren denselben Speicher auflösen.

Außerdem enthalten NUMA-Systeme andere Hardware oder Software zum Verschieben von Daten zwischen Speicherbänken. Dies verringert die Geschwindigkeit der an diese Bänke angeschlossenen Prozessoren. Daher hängt die Gesamtgeschwindigkeitserhöhung aufgrund von NUMA hauptsächlich von der Art der laufenden Aufgabe ab.

Kohärentes NUMA im Cache (ccNUMA)

Fast alle CPU-Architekturen nutzen Referenzpositionen beim Speicherzugriff mit einer kleinen Menge an nicht gemeinsam genutztem Hochgeschwindigkeitsspeicher namens Caching.

ccNUMA verwendet eine Interprozessor-Kommunikation zwischen Cache-Controllern, um konsistente Speicherabbilder aufrechtzuerhalten, wenn mehrere Caches denselben Speicherort speichern. Infolgedessen schneidet ccNUMA schlecht ab, wenn mehrere Prozessoren versuchen, schnell und kontinuierlich auf denselben Speicherbereich zuzugreifen.

Die Unterstützung von NUMA im Betriebssystem versucht, die Häufigkeit eines solchen Zugriffs zu reduzieren, indem Prozessoren und Speicher in einer NUMA-freundlichen Weise zugewiesen werden und die Planungs- und Sperralgorithmen verhindert werden, die für einen NUMA-unfreundlichen Zugriff erforderlich sind.

Software-Unterstützung

Da NUMA die Leistung des Speicherzugriffs stark beeinflusst, ist eine gewisse Softwareoptimierung erforderlich, damit die Planung von Threads und Prozessen auf ihre Speicherdaten zugreifen kann.

  • Silicon Graphics IRIX unterstützt die ccNUMA-Architektur über 1240 CPU- und Origin-Serverserien.
  • Sowohl Microsoft Windows 7 als auch Windows Server 2008 R2 haben die Unterstützung für mehr als 64 logische Kerne der NUMA-Architektur verbessert.
  • Java 7 fügt Unterstützung für NUMA-fähige Speicherzuordnungen und Garbage Collectors hinzu.
  • Version 3.13 des Linux-Kernels führte mehrere Richtlinien ein, um Prozesse in der Nähe des Speichers zu platzieren und Situationen wie die Verwendung großer transparenter Seiten oder die gemeinsame Nutzung von Speicherseiten zwischen Prozessen zu behandeln. Mit den neuen sysctl-Einstellungen können Sie den NUMA-Balancing aktivieren oder deaktivieren und verschiedene Parameter für den NUMA-Speicherausgleich konfigurieren.
  • OpenSolaris verwendet lgroups, um die NUMA-Architektur zu modellieren.
  • FreeBSD fügt der Version 11.0 die anfängliche NUMA-Relevanz und die Richtlinienkonfiguration hinzu

Endeffekt!

Kurz gesagt, nachdem Sie diese Seite durchgegangen sind, werden Sie die Definition, das Grundkonzept und die Arbeitsweise des Non-Unified Memory Access besser verstehen. Sie wissen auch, dass sich NUMA auf die Leistung des Speicherzugriffs auswirkt, sodass einige Software optimiert wird, um dies zu unterstützen.

 

Wie nützlich war dieser Beitrag?

Klicken Sie auf einen Stern, um ihn zu bewerten!

Durchschnittliche Bewertung4.6/ 5. Stimmenzahl:5

Bisher keine Stimmen! Seien Sie der Erste, der diesen Beitrag bewertet.

Vorheriger Artikel

So setzen Sie das neueste Google Chrome-Symbol für Mac auf das Original zurück Zusammenfassung: NUMA, kurz für Non-Unified Memory Access, ist ein Computerspeicherdesign für Multiprocessing. Eine vollständige Einführung finden Sie hier...

Nächster Artikel

So stellen Sie gelöschte Videos vom Mac wieder her Zusammenfassung: NUMA, kurz für Non-Unified Memory Access, ist ein Computerspeicherdesign für Multiprocessing. Eine vollständige Einführung finden Sie hier...

Über Bitwar-Datenwiederherstellung

3 Schritte, um mehr als 500 Arten von gelöschten, formatierten oder verlorenen Dokumenten, Fotos, Videos, Audios und Archivdateien aus verschiedenen Datenverlustszenarien zurückzubekommen.

Erfahren Sie mehr

Heiße Artikel

    In Verbindung stehende Artikel