Unter Linux habe ich zwei Möglichkeiten, den von verwendeten Speicher abzurufen ext4_inode_cache
. Die erste ist die Verwendung des slabtop
Befehls, der mir auch Informationen zur „CACHE-GRÖSSE“ liefert:
# slabtop -o -s c | grep -E '(ext4_inode_cache|NAME)'
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
118794 114631 96% 1.16K 9138 13 146208K ext4_inode_cache
Zweitens wird es gelesen /proc/slabinfo
, aber es gibt mir nicht die berechnete „CACHE-GRÖSSE“:
# grep -E '(pagesperslab|ext4_inode_cache)' /proc/slabinfo
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
ext4_inode_cache 114631 118794 1184 13 4 : tunables 0 0 0 : slabdata 9138 9138 0
Wie berechne ich es aus den obigen Zahlen? Der Quellcode von Slaptop enthält eine Formel:
Aber ich mache bestimmt etwas falsch, da das Ergebnis, das ich nach meiner Berechnung erhalte, nicht mit der „CACHE SIZE“-Ausgabe von Slaptop übereinstimmt.
Antwort1
Egal, ich habe es herausgefunden:
"CACHE SIZE" = <pagesperslab> * <batchcount> * PAGE_SIZE
PAGE_SIZE beträgt im Allgemeinen 4k