Überprüfen des Allokators in zcat /proc/config.gz
In diesem Schritt werden wir die Allokator-Konfiguration überprüfen, indem wir die Kernel-Konfigurationsdatei untersuchen, die normalerweise komprimiert ist und sich unter /proc/config.gz
befindet. Diese Datei enthält die Konfigurationsoptionen, die zum Bauen des Kernels verwendet wurden, einschließlich derjenigen, die sich auf die Speicherallokation beziehen.
Zunächst verwenden wir den zcat
-Befehl, um die Konfigurationsdatei zu dekomprimieren und ihren Inhalt anzuzeigen:
zcat /proc/config.gz
Der zcat
-Befehl ähnelt dem cat
-Befehl, aber er dekomprimiert automatisch gzip-komprimierte Dateien. Die Ausgabe wird eine lange Liste von Kernel-Konfigurationsoptionen sein.
Um nach Allokator-bezogenen Optionen zu suchen, können wir grep
verwenden, um die Ausgabe zu filtern. Beispielsweise können wir den folgenden Befehl verwenden, um Optionen zu finden, die sich auf den Slab-Allocator beziehen:
zcat /proc/config.gz | grep SLAB
Dies zeigt die Zeilen an, die "SLAB" enthalten. Sie könnten etwas wie Folgendes sehen:
CONFIG_SLAB=y
## CONFIG_SLAB_DEPRECATED is not set
CONFIG_SLUB=y
## CONFIG_SLOB is not set
Diese Optionen geben an, welcher Slab-Allocator im Kernel aktiviert ist. CONFIG_SLAB=y
zeigt an, dass der ursprüngliche Slab-Allocator aktiviert ist, während CONFIG_SLUB=y
anzeigt, dass der SLUB-Allocator aktiviert ist. Nur einer dieser Allokatoren sollte aktiviert sein. CONFIG_SLOB
ist ein vereinfachter Allokator für eingebettete Systeme.
Sie können auch nach anderen Allokator-bezogenen Optionen suchen, wie beispielsweise denen, die sich auf den Page-Allocator (Seiten-Allokator) oder das Buddy-System beziehen. Beispielsweise:
zcat /proc/config.gz | grep PAGE_ALLOC
Dies zeigt Optionen an, die sich auf die Seitenallokation beziehen.
Durch die Untersuchung der Kernel-Konfigurationsdatei können Sie überprüfen, welcher Allokator verwendet wird und welche Optionen aktiviert sind. Dies kann hilfreich sein, um das Verhalten der Speicherverwaltung des Systems zu verstehen.