ajuste as configurações de cache do linux para o cache de inode

5

Estou lidando com centenas de milhões de arquivos em um sistema de arquivos (distribuído em vários subdiretórios), e preciso listá-los rapidamente, particularmente para rsync-los eficientemente.

Por outro lado, eu realmente não preciso ter o conteúdo real do arquivo mantido em cache.

Estou constantemente adicionando e removendo arquivos, mas não com frequência (algo como dez vezes por segundo).

Existe uma maneira que eu posso dizer ao sistema operacional (2.6.18-194.el5) para usar mais 24 GB de RAM disponível no cache de inode do que no cache de arquivos? Eu já olhei em / proc / etc / vm / vfs_cache_pressure mas não parece ser exatamente o que estou procurando ...

    
por john.doe 06.12.2011 / 12:44

2 respostas

3

Que tal diminuir o valor de vfs_cache_pressure ? De acordo com Documentação para / proc / sys / vm / * , isso deve fazer o que você deseja:

vfs_cache_pressure

This percentage value controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects.

At the default value of vfs_cache_pressure=100 the kernel will attempt to reclaim dentries and inodes at a "fair" rate with respect to pagecache and swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will never reclaim dentries and inodes due to memory pressure and this can easily lead to out-of-memory conditions. Increasing vfs_cache_pressure beyond 100 causes the kernel to prefer to reclaim dentries and inodes.

Increasing vfs_cache_pressure significantly beyond 100 may have negative performance impact. Reclaim code needs to take various locks to find freeable directory and inode objects. With vfs_cache_pressure=1000, it will look for ten times more freeable objects than there are.

    
por 04.08.2014 / 12:46
2

você pode usar esses 2 comandos para fazer o mesmo trabalho.

Updatedb (to update the list of file and folders location in whole drive)

locate / (to list all files in the whole OS, which is lightening fast as it picks them up from the Database)

    
por 06.12.2011 / 13:15