Gibt es eine Möglichkeit, die Größe von L1-, L2-, L3-Cache und RAM in Ubuntu zu ermitteln?
Gibt es einen Terminalbefehl oder Dateien, in die ich schauen könnte?
linux
ubuntu
operating-systems
user3692521
quelle
quelle
Antworten:
CPU-Informationen
Verwenden Sie den Befehl lscpu :
Die aufgeführten Informationen beziehen sich auf den CPU-Kern.
Speicherinformationen
Es gibt den freien Befehl (-h gibt Ergebnisse in lesbarer Form an, dh GiB statt Bytes):
quelle
Dadurch erhalten Sie Ihre Cache-Informationen. Die Socket-Bezeichnung gibt an, auf welchen Cache im Abschnitt verwiesen wird.
Für RAM gibt es ein paar Dinge zu beachten, aber meminfo sollte es tun. Ich habe grep hier verwendet, um nur total / free anzuzeigen, aber Sie könnten weniger oder cat verwenden, um das Ganze zu sehen. Es zeigt viel mehr Informationen zur Speichergröße und -nutzung als nur zur Größe.
quelle
Basierend auf jkabrams Antwort mit folgendem Befehl und Filtern von "Cache" daraus wird jedes Cache-Element angezeigt.
und RAM:
Für weitere Informationen über RAM, Prozesse usw. können Sie htop in Ihrer Distribution verwenden. Installieren Sie es so auf Ubuntu.
quelle
sysfs
Gibt:
getconf
gibt:
Oder für eine einzelne Ebene:
Das Coole an dieser Schnittstelle ist, dass sie nur ein Wrapper um die POSIX
sysconf
C-Funktion ist (Cache-Argumente sind Nicht-POSIX-Erweiterungen) und daher auch aus C-Code verwendet werden kann.Getestet in Ubuntu 16.04.
x86-CPUID-Anweisung
Die CPUID x86-Anweisung bietet auch Cache-Informationen und kann vom Benutzerland direkt aufgerufen werden: https://en.wikipedia.org/wiki/CPUID
glibc scheint diese Methode für x86 zu verwenden. Ich habe nicht durch schrittweises Debuggen / Anweisungsverfolgung bestätigt, aber die Quelle für 2.28
sysdeps/x86/cacheinfo.c
macht das:TODO erstellen Sie ein minimales C-Beispiel, das jetzt faul ist und gefragt wird: /programming/14283171/how-to-receive-l1-l2-l3-cache-size-using-cpuid-instruction-in-x86
ARM verfügt außerdem über einen architekturdefinierten Mechanismus zum Ermitteln von Cache-Größen über Register wie das Cache Size ID Register (CCSIDR). Eine Übersicht finden Sie im ARMv8-Programmierhandbuch 11.6 "Cache- Erkennung ".
quelle