Como forçar o kernel a armazenar mais arquivos no NFS

4

Eu tenho um servidor web dedicado servindo arquivos estáticos via NFS. O servidor tem 32 GB de RAM, mas a memória em cache nunca cresce mais do que 16 GB.

Tenho certeza de que o SO pode alocar mais do que isso, porque ao longo do dia, a memória em cache fica fixa em 16 GB, mas quando o logrotate é executado, a memória em cache aumenta para até 30 GB.

Eu tenho jogado com vários valores de / proc / slabinfo (nfs_direct_cache nfs_read_data nfs_inode_cache) sem sucesso.

Qualquer dica ou link sobre isso será agradecido.

Obrigado antecipadamente.

    
por DCS 14.03.2011 / 11:30

1 resposta

1

Se você está falando sobre cache de páginas, isso cresce em relação aos arquivos que você acessa, a quantidade de dados dentro dos arquivos que você acessou e o quão ativos os arquivos estão.

Nos kernels modernos, quando um arquivo é armazenado em cache, ele é imediatamente marcado como inativo até ser usado novamente. Isso não significa que ele seja despejado do cache, mas em um sistema com maior pressão de memória (páginas ativamente anonimamente mapeadas) ele pode ser descartado rapidamente.

O tamanho do cache também é determinado pela pressão da memória. Isso é basicamente uma fração do número de vezes que o cache foi verificado em relação ao número de páginas que foram promovidas de "inativo" para "ativo" e vice-versa. Contra quantas pesquisas de disco seriam necessárias para acessar esses dados do disco. Então, na verdade, deve levar mais tempo para varrer e manter o cache do que para acessar alguns dados do disco e não aumentar o tamanho do cache de páginas.

Pode ser que você não tenha produzido pressão de memória suficiente por meio de acessos a arquivos para ditar que usar mais cache de páginas seria de algum benefício. O que isso significa é que há aproximadamente 16G de páginas acessadas diariamente e isso não muda com frequência.

Eu acho que no logrotate se o arquivo que você acabou de ler sequencialmente (levando a 30G) foi desvinculado, então as páginas que ele usou não precisam mais estar lá. Isso pode explicar por que o tamanho do cache da página diminui novamente.

AFAIK isto só é relevante para os kernels pós 2.6.28 onde eles mudaram o algoritmo de gerenciamento de memória.

    
por 20.03.2011 / 12:41