從 /proc/slabinfo 計算“ext4_inode_cache”使用的記憶體?

從 /proc/slabinfo 計算“ext4_inode_cache”使用的記憶體?

在 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的原始碼有一些公式:

https://github.com/thlorenz/procps/blob/b713185dc7b4c82d8cbc9f4be7e345f09df365bb/deps/procps/proc/slab.c#L179

但我肯定做錯了什麼,因為我計算後得到的結果與 slaptop 的「快取大小」輸出不符。

答案1

沒關係,我已經弄清楚了:

"CACHE SIZE" = <pagesperslab> * <batchcount> * PAGE_SIZE 

PAGE_SIZE一般為4k

相關內容