在 Linux 上,我有兩種方法來取得ext4_inode_cache
.首先是使用slabtop
命令,它也給我“CACHE SIZE”訊息:
# 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
其次是閱讀/proc/slabinfo
,但它沒有給我計算的「快取大小」:
# 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
我如何根據上面的數字來計算它? slaptop的原始碼有一些公式:
但我肯定做錯了什麼,因為我計算後得到的結果與 slaptop 的「快取大小」輸出不符。
答案1
沒關係,我已經弄清楚了:
"CACHE SIZE" = <pagesperslab> * <batchcount> * PAGE_SIZE
PAGE_SIZE一般為4k