Este é um bom utilitário, parte de linux-ftools . Você precisa fornecer o nome do arquivo como entrada e as estatísticas dos arquivos que estão no cache agora.
# fincore --pages=false --summarize --only-cached <file_name>
fincore [options] files...
--pages=false Do not print pages
--summarize When comparing multiple files, print a summary report
--only-cached Only print stats for files that are actually in cache.
root@xxxxxx:/var/lib/mysql/blogindex# fincore --pages=false --summarize --only-cached *
stats for CLUSTER_LOG_2010_05_21.MYI: file size=93840384 , total pages=22910 , cached pages=1 , cached size=4096, cached perc=0.004365
stats for CLUSTER_LOG_2010_05_22.MYI: file size=417792 , total pages=102 , cached pages=1 , cached size=4096, cached perc=0.980392
stats for CLUSTER_LOG_2010_05_23.MYI: file size=826368 , total pages=201 , cached
---
total cached size: xxx
Além disso, o sistema de arquivos tmpfs ou ramfs é parte do cache.
Como observado na documentação do tmpfs
Since tmpfs lives completely in the page cache and on swap, all tmpfs
pages currently in memory will show up as cached. It will not show up
as shared or something like that
tmpfs has three mount options for sizing:
size: The limit of allocated bytes for this tmpfs instance. The
default is half of your physical RAM without swap.
**If you oversize your tmpfs instances the machine will deadlock
since the OOM handler will not be able to free that memory.**
nr_blocks: The same as size, but in blocks of PAGE_CACHE_SIZE.
nr_inodes: The maximum number of inodes for this instance. The default
is half of the number of your physical RAM pages, or (on a
machine with highmem) the number of lowmem RAM pages,
whichever is the lower.
Você pode limitar o sistema de arquivos tmpfs
# mount -t tmpfs -o size=60M tmpfs /tmp -> Size limited to 60M
Você também pode ajustar suas entradas / proc / sys / vm / * para melhorar o mecanismo de armazenamento em cache.
Eu escrevi uma postagem aqui sobre o cache do Linux . Provavelmente isso pode ajudá-lo.