Desativar cache de página para o protocolo NFS

0

Eu tenho um cliente NFS que executa operações de LEITURA de ARQUIVO de um servidor NFS compartilhado.
No servidor, monitore as operações FILE READ.
O problema é quando eu leio o mesmo arquivo (com usuários diferentes) na mesma máquina - ele só invocará 1 operação READ FILE via protocolo NFS (no cliente e portanto no servidor).

Após a investigação ( este tópico ) - Eu descobri que ao limpar o cache da página:

echo 1 > /proc/sys/vm/drop_caches

A operação READ FILE será invocada novamente.

É possível impor o kernel / OS para desabilitar o cache de páginas para o protocolo NFS?

    
por ilansch 12.02.2017 / 17:44

1 resposta

0

É impossível. Imagine o que aconteceria se você tentasse executar um arquivo de um servidor NFS. O arquivo é mapeado na memória, mas na verdade não é lido na memória porque o uso do cache de páginas não é permitido. O programa começa a executar, mas as falhas de página são imediatamente porque o mapeamento de memória não é armazenado em cache na RAM. Não iniciante. Ok, então vamos dizer que estamos autorizados a relaxar um pouco a regra e preencher o cache da página apenas para esta página apenas desta vez. Nós o lemos na memória RAM a partir do servidor NFS e resolvemos a falha da página, mas prontamente a despejamos. O programa executa uma instrução - talvez - e, em seguida, falha na página novamente.

Você poderia fazer isso funcionar um pouco menos ridiculamente do que o experimento de pensamento que acabei de descrever, especialmente você está falando sobre% normalread() e não mmap() , mas sua solução ainda estaria completamente em desacordo com o funcionamento da memória virtual fundamentalmente e iria realizar muito mal.

    
por 12.02.2017 / 20:22