Não estou ciente de nenhuma maneira de solicitar que uma parte específica da memória seja movida para swap no Linux. No entanto, o contrário é possível. Você pode pré-carregar explicitamente os arquivos usados pelo BAR para armazenar em cache simplesmente executando cat /path/to/file >/dev/null
.
Se o BAR já estiver em execução e parcialmente trocado, no Linux, você pode organizar o carregamento de suas páginas lendo /proc/BAR_PID/mem
. Veja Como eu leio em / proc / $ pid / mem no Linux?
Além disso, se você quiser disponibilizar alguma memória para o consumo rápido do BAR, você pode iniciar um programa que alocará muita memória. Isso não é ideal porque o kernel pode decidir trocar algum outro processo ou remover arquivos úteis do cache de disco. Para obter melhores resultados, faça isso antes de trocar qualquer coisa que você queira explicitamente trocar e suspenda FOO ( kill -STOP FOO_PID
). perl -e '$a = "a" x 1234567'
aloca cerca de 2 × 1234567 bytes de memória mais alteração.