O cache que mais importa para a passagem de diretórios é o cache de inode. Isso não está incluído na figura "cache" que exibe free
. Faz parte dos dados do kernel (o “ slab ”). Você pode ver quanta memória os vários pools slab ocupam em /proc/slabinfo
(isso requer acesso root). Você pode usar slabtop
para vê-los variar em tempo real ou esse snippet para obter um relatório com o tamanho de cada pool em bytes:
</proc/slabinfo awk '{print $1, $3*$4}' |sort -k2n
Em uma máquina típica, a pressão no cache de inodes vem do trabalho noturno de updatedb . Se você encontrar como evitar isso, me avise .
O tamanho do pool de cache de inode não é fixo, é determinado por uma proporção de cache de metadados por cache de dados: o vm.vfs_cache_pressure
parameter . Você pode querer experimentar com isso - um valor baixo (o padrão é 100) para manter mais entradas no cache, para que as de hg
não sejam deslocadas ou um valor alto para que as entradas de tarefas noturnas do cron não fique para poluir a RAM.
Finalmente, há sempre o truque de executar hg status
em um trabalho cron matutino.