Não, não, não!
Não é assim que é feito. O Linux (o kernel) pode optar por colocar alguns arquivos no cache e removê-los sempre que quiser. Você realmente não pode ter certeza de que alguma coisa está no cache ou não. E esse comando não vai mudar isso (muito).
O conselho no link que você forneceu é tão errado de muitas maneiras!
- O cache é uma coisa do sistema operacional. Você não precisa
cat
do arquivo para/dev/null
para aproveitar isso. Esta é realmente uma coisa muito estúpida, porque você está forçando o Linux a ler o arquivo uma vez. Por exemplo, se você planeja ler um arquivo 4 vezes. Se você não se importar com isso, a primeira leitura será bem lenta, os 3 subsequentes deverão ser mais rápidos (por causa do cache). Se você estiver usando esse "truque", a primeira leitura será bem lenta, todos os 4 subsequentes deverão ser mais rápidos (mas não nulos). Apenas deixe o Linux lidar com ele . - Este comando só é útil se você quiser ter certeza de que o Linux o mantém na RAM. Então você tem que executá-lo muitas vezes quando o sistema está ocioso. No entanto, como eu disse, isso também é estúpido porque você nunca pode ter certeza de que o Linux realmente armazenou o arquivo em cache na RAM e, mesmo se o fizesse, gastaria tempo para lê-lo na RAM ou no disco (se não estivesse armazenado em cache ou já removido do cache).
- Ao fazer isso repetidamente em um arquivo grande, você basicamente faz o Linux pensar que esse arquivo deve estar na RAM às custas de outros arquivos que você realmente usa com mais frequência.
Portanto, a conclusão aqui: não faça esse tipo de truques, isso geralmente é contraproducente.
No entanto, , se você sabe que alguns arquivos pequenos (comparados ao tamanho da sua RAM) realmente se beneficiariam do acesso da RAM, você pode usar um tmpfs
mount e armazene seu arquivo lá. Em distribuições modernas, a pasta /tmp
geralmente é um tmpfs
one.
Outra alternativa que eu pessoalmente achei digna é comprimir o seu arquivo no nível do FS com o BTRFS, por exemplo, ou manualmente (mas este requer que o programa que acessa o arquivo tenha a capacidade de descompactá-lo). Naturalmente, seus arquivos devem se beneficiar da compactação, caso contrário, isso é inútil. Dessa forma, você pode estar muito mais confiante de que o Linux mantém seu arquivo compactado na RAM (já que é menor) e se seu aplicativo for IO ligado, carregar 100 MB do disco em vez de carregar 10 GB deve ser muito mais rápido.