Como o status_access_denied aponta em sua resposta, isso não é seguro para os dados, pois eles serão perdidos se ocorrer um desligamento de energia ou outro desligamento descontrolado.
Além disso, muitas vezes você é melhor deixar o SO decidir o que manter na 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 VM, bancos de dados e qualquer outra coisa que seu servidor esteja fazendo.
Se você quiser ter certeza de que os dados estão em cache na inicialização (onde permanecerá se a memória realmente não for necessária para mais nada, você poderá 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. O Debian e o Ubuntu (e provavelmente outras distros) executam o script /etc/rc.local
no final do processo de boot, então esse é provavelmente o lugar mais simples para colocar o comando. Se a quantidade de dados que está sendo carregada for grande e / ou distribuída em 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ê encontrará pv
nos repositórios padrão. a opção --rate-limit
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 você quiser que o servidor releia os arquivos ocasionalmente para replantá-los no cache caso eles tenham sido enviados por outra coisa.