Qual é o propósito de um ramdisk quando existe um fadvise?

Qual é o propósito de um ramdisk quando existe um fadvise?

Meu entendimento é quefadvisedirá ao sistema que os arquivos indicados devem ser armazenados no cache do sistema de arquivos (RAM).

Qual é o propósito de montar um diretório em um ramdisk quando você pode apenas fadvise --willneedo diretório?

Responder1

Vamos lera página de manual para a chamada da biblioteca subjacente:

Os programas podem usar posix_fadvise() para anunciar uma intenção de acessar dados de arquivos em um padrão específico no futuro, permitindo assim que o kernel execute otimizações apropriadas.

Oconselhoaplica-se a uma região (não necessariamente existente) começando emdesvioe estendendo-se porlentobytes (ou até o final do arquivo selentoé 0) dentro do arquivo referido porfd.Oconselhonão é vinculativo; constitui apenas uma expectativa em nome da aplicação.

(Enfase adicionada.)

É garantido que tudo em um disco RAM esteja na RAM, por design (embora o tmpfs possa ser trocado). Mas o fadvise é meramente consultivo; o kernel não é necessário para pré-carregar os dados na RAM, nem para mantê-los sempre na RAM.

informação relacionada