Como o status_access_denied aponta em sua resposta, isso não é seguro para os dados, já que eles serão perdidos se ocorrer um desligamento de energia ou outro desligamento descontrolado.
Além disso, muitas vezes você é melhor deixar o sistema operacional decidir o que manter na memória RAM. Se você dedicar um pedaço de memória RAM a arquivos específicos como esse, não poderá usá-lo para outras coisas, como armazenamento em cache de outros arquivos, memória da VM, bancos de dados e o que mais seu servidor estiver fazendo.
Se você quiser ter certeza de que os dados estão no cache na inicialização (onde permanecerá se a memória realmente não for necessária para qualquer outra coisa, você pode executar algo como:
find /path/to/directory -type f | xargs cat > /dev/null
na inicialização. O comando acima resultará em todos os arquivos sendo lidos e, portanto, passados pelo subsistema de armazenamento em cache. Debian e Ubuntu (e provavelmente outras distros) executam o script /etc/rc.local
no final do processo de inicialização, de modo que é provavelmente o lugar mais simples para colocar o comando. Se a quantidade de dados que está sendo carregada for grande e / ou distribuída por muitos arquivos grandes, convém limitar a taxa na qual ela é lida, para que isso não interfira em nada que esteja acontecendo (ou seja, se você estiver efetuando login diretamente após a inicialização ou outros serviços ainda estão sendo iniciados) com algo como:
find /path/to/directory -type f | xargs pv --rate-limit 1M --quiet > /dev/null
Você vai encontrar pv
nos repositórios padrão. a --rate-limit
opção faz o que diz na lata (neste caso, limitando a taxa para 1Mbyte / seg) e --quiet
diz para não se incomodar com a barra de progresso e outra exibição.
Você poderia mandar o comando em um cron job se quiser que o servidor releia ocasionalmente os arquivos para propagá-los novamente no cache caso eles tenham sido enviados por outra coisa.