Manter metadados do sistema de arquivos em cache com vfs_cache_pressure

1

Meus servidores Ubuntu Linux (virtuais) executam o rdiff-backup diariamente, que examina todos os metadados do arquivo para determinar o que precisa ser armazenado em backup, diminuindo a velocidade. Ele faz isso todos os dias, mesmo que a maioria dos arquivos não mude. Eu gostaria de manter esses dados no cache. Para este fim, tenho experimentado com /proc/sys/vm/vfs_cache_pressure , atualmente definido como 20.

Como exemplo, um servidor virtual tem 35% de seus inodes em uso:

Isso equivale a 1057350. O tamanho do inode é 256. Isso significa que eu preciso (1057350 * 256) = 258 MB? Edit: aparentemente não, veja abaixo.

E para dentries? Este servidor tem 225510 dirs, a maioria deles 4k grande. Isso significa que preciso 225510 * 4096 = 880 MB de cache?

Isso significa que quando eu defino vfs_cache_pressure para 1 e tenho, digamos, 2 GB de memória livre, ele reterá todos os metadados no cache?

E como posso ver como meu cache atual é usado? o que são metadados e o que são dados?

Edit: Acabei de encontrar a ferramenta slabtop . As linhas principais são:

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                   
1656144 1655632  99%    0.19K  78864       21    315456K dentry                 
1207269 1207269 100%    0.76K  57489       21    919824K ext3_inode_cache       
246909 246909 100%    0.10K   6331       39     25324K buffer_head            
232640 232400  99%    0.06K   3635       64     14540K kmalloc-64             
 69776  60491  86%    0.55K   2492       28     39872K radix_tree_node        
 51896  49740  95%    0.61K   1996       26     31936K proc_inode_cache       
 37376  21915  58%    0.01K     73      512       292K kmalloc-8

Portanto, já há 1 GB de cache de inode. E o cache de diretórios é muito menor do que eu.

Ainda não consigo deduzir o quanto de cache de páginas é usado.

    
por Halfgaar 07.04.2015 / 10:28

0 respostas

Tags