En Linux tengo dos formas de hacer que utilice la memoria ext4_inode_cache
. Lo primero es utilizar el slabtop
comando que también me proporciona información sobre "TAMAÑO DE CACHÉ":
# 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
El segundo es leer /proc/slabinfo
pero no me da el "TAMAÑO DE CACHÉ" calculado:
# 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
¿Cómo lo calculo a partir de los números anteriores? El código fuente de slaptop tiene alguna fórmula:
Pero seguramente estoy haciendo algo mal porque el resultado que obtengo después de mi cálculo no coincide con la salida "TAMAÑO DE CACHÉ" de slaptop.
Respuesta1
No importa, lo descubrí:
"CACHE SIZE" = <pagesperslab> * <batchcount> * PAGE_SIZE
PAGE_SIZE suele ser 4k