In meiner/etc/default/grub-Datei habe ich N riesige Seiten mit "hugepages = N" explizit beiseite gelegt. Wenn ich auf einer Box mit 2 NUMA-Knoten laufe, werden N/2 riesige Seiten für jeden Knoten reserviert, oder gehen alle auf Knoten 0 oder ....? Gibt es auch eine Möglichkeit in der Befehlszeile abzufragen, wie sie über Knoten verteilt sind?Wie wird der Speicher hinter statisch zugewiesenen großen Seiten über NUMA-Knoten verteilt?
Antwort
Vom kernel.org Post über hugepages HERE
Auf einer NUMA-Plattform, versucht der Kernel die riesige Seite Pool über die ganze Menge der erlaubten Knoten durch die NUMA-Speicherpolitik der Aufgabe angegeben zu verteilen das ändert nr_hugepages. Der Standardwert für die zulässigen Knoten - wenn der Task über die Standardspeicherrichtlinie verfügt - sind alle Online-Knoten mit Speicher. Erlaubt Knoten mit nicht genügend verfügbaren, zusammenhängenden Speicher für eine große Seite wird automatisch übersprungen, wenn persistente große Seiten zugeordnet werden. Siehe die folgende Diskussion der Interaktion von Taskspeicher-Richtlinie, cpusets und pro Knotenattribute mit der Zuweisung und Freigabe von persistenten großen Seiten.
Der Erfolg oder Misserfolg der großen Seitenzuordnung hängt von der Menge physisch zusammenhängenden Speicher ab, der zum Zeitpunkt des Zuweisungsversuchs im System vorhanden ist. Wenn der Kernel keine großen Seiten von einigen Knoten in einem NUMA-System zuordnen kann, wird er versuchen, die Differenz durch zu ergänzen, wobei zusätzliche Seiten auf anderen Knoten mit genügend verfügbarem zusammenhängendem Speicher zugewiesen werden.
Systemadministratoren möchten diesen Befehl möglicherweise in eine der lokalen rc Init-Dateien schreiben. Dies ermöglicht es dem Kernel, große Seiten früh im Boot-Prozess zuzuordnen, wenn die Möglichkeit, physische zusammenhängende Seiten zu erhalten, immer noch sehr hoch ist. Administratoren können die Anzahl der tatsächlich zugewiesenen Seiten überprüfen, indem sie sysctl oder meminfo überprüfen. Verwenden Sie zum Prüfen der Verteilung von großen Seiten in einem NUMA-System pro Knoten :
cat /sys/devices/system/node/node*/meminfo | fgrep Huge
- 1. Wie wird der Pagerank verteilt berechnet?
- 2. befreiend zugewiesenen Speicher
- 3. wie finden zugewiesenen Speicher in Linux
- 4. Wie mache ich dieses Hintergrundbild statisch hinter der Sammlungsansicht
- 5. Stapelspeicher verwenden kontinuierlich dynamisch zugewiesenen Array vs statisch
- 6. Calloc() weist vorher zugewiesenen Speicher zu
- 7. Möglich, statisch zugewiesenen Array in Swift zu erstellen?
- 8. Möglichkeit, den auf freien Speicher zugewiesenen Speicher zu erhöhen
- 9. Warum wird die Position absolut über der Position statisch gerendert?
- 10. Statischer Webdienst über nicht statisch
- 11. C++: Klasseninstanz im zugewiesenen Speicher ablegen
- 12. Wie verteilt man Tempdb über mehrere Dateien?
- 13. Neuzuweisung der dynamisch zugewiesenen Struktur
- 14. Machen aufeinanderfolgende "neue" Operatoren zusammenhängenden zugewiesenen Speicher?
- 15. behandelt zugewiesenen Speicher als einen anderen Typ
- 16. malloc gibt Zeiger auf zugewiesenen Speicher zurück
- 17. Gibt es eine Begrenzung des Speichers, der mit großen Seiten belegt wird?
- 18. Swift: Laden einer großen Videodatei (über 700MB) in den Speicher
- 19. Wie kann man den von cdev_alloc zugewiesenen Speicher freigeben?
- 20. Können vorbereitete Anweisungen über Threads verteilt werden?
- 21. C++ statisch zugewiesene Doppelschlangenimplementierung
- 22. Web-Speicher mit HTML-Seiten
- 23. Wie wird der Code-Speicher verwaltet?
- 24. Wie wird mit großen Datei-Uploads über WCF umgegangen?
- 25. Wie tcplistener eingehende Verbindungen über Threads in .NET verteilt werden?
- 26. wo der Speicher zugewiesen, wenn wir statisch deklarieren?
- 27. Gibt es Ausrichtungsgarantien für den über den Itanium ABI zugewiesenen Ausnahme-Speicher?
- 28. Wie erstellt man einen großen unscharfen Schatten hinter einem TextView?
- 29. Spark verteilt keinen Treiber über den Cluster
- 30. Docker Bild Push über SSH (verteilt)